如何判断哪个 class 处理 Java Server Faces 中的请求?

How to tell which class handles a request in Java Server Faces?

我正在接管一个基于 Java Server Faces 的项目(项目大约创建于 2009 年,所以是 JSF 1.0?)。我还没有弄清楚 JSF 如何处理前端控制器逻辑,即 Faces servlet 如何确定将 GET 或 POST 转发到哪个 Java class。例如,Spring MVC 有“@Request”注解。 JSF 是如何做到的?

这个很有用link,但是没有具体回答我的问题。我想知道 JSF 如何将 GET 或 POST 绑定到 Java class。原来是ice:commandButton中的"action"项,例如

        <ice:form id="footForm">
            <ice:commandButton id="cancelButton" value="Cancel" action="#{ProductMB.cancel}"></ice:commandButton>
            <ice:commandButton id="saveButton" value="Save" action="#{ProductMB.save}" disabled="#{ProductMB.notAllRequiredFieldsEntered}"></ice:commandButton>
        </ice:form>

开箱即用的 JSF 模型与您习惯使用 spring mvc 的模型有点不同。请求处理程序通常映射到 /webapp 目录下的 jsp 文件,因此 /webapp/home.xhtml 文件在 /yourwebapp/home.jsf

下提供

JSF 页面通常使用表达式语言从托管 bean 上下文中提取它们的依赖项。这些 bean 在 faces-config.xml 应用程序配置文件(看起来很像 spring 配置文件)中声明。如果是这种情况,您将能够看到所有托管 bean 所在的位置。否则,它们将通过托管 bean 类 本身的 @ManagedBean 注释声明。

我认为还有许多其他风格的 JSF,但本教程应该让您了解原始版本的工作方式:

http://www.tutorialspoint.com/jsf/jsf_first_application.htm