如何判断哪个 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,但本教程应该让您了解原始版本的工作方式:
我正在接管一个基于 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,但本教程应该让您了解原始版本的工作方式: