【发布时间】:2015-09-14 16:31:18
【问题描述】:
我正在接管一个基于 Java Server Faces 的项目(项目创建于 2009 年左右,所以是 JSF 1.0?)。我还没有弄清楚 JSF 如何处理前端控制器逻辑,即 Faces servlet 如何确定将 GET 或 POST 转发到哪个 Java 类。例如,Spring MVC 有“@Request”注解。 JSF 是如何做到的?
这是一个非常有用的链接,但没有具体回答我的问题。我想知道 JSF 如何将 GET 或 POST 绑定到 Java 类。原来是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 不是基于请求的框架;它是一个基于组件的框架。一个 Facelets 页面可能会引用多个 backing-bean,尽管在我的项目中,大多数页面都设计为仅引用一个。在您的 Facelets 页面中,查找像
value=#{personBean.person}这样的代码行。personBean将是某个 bean 的名称,可能是PersonBean.java,person将是该 bean 的属性。真的,虽然你最好看看一些教程,因为你有很多东西要学。 -
我希望它不是 JSF 1.0。 JSF 2.0 于 2009 年发布,据我所知,它更容易使用。
-
停止。你走错了方向。暂停当前的项目,去找一本像样的 JSF 书,然后抽出时间来阅读它。这里是您获取 JSF 资源的起点:stackoverflow.com/tags/jsf/info 然后,在根据本书的经验对 JSF 代码进行了深入的练习之后,继续该项目。否则,将成为一场灾难。
标签: jsf model-view-controller front-controller