快速业务通道

JSF 1.2入门,第1部分 构建基本应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
</managed-bean-class>    <managed-bean-scope>none</managed-bean-scope> </managed-bean>

calculatorController 在 request 范围下映射。将 calculator 注入 calculatorController 的方 法是使用 <managed-property> 并传递表达式 #{calculator}。这会创建一个 Calculator 对象并 使用 CalculatorController 的 setCalculator 方法把它注入 CalculatorController,见清单 28:

清单 28. 托管的 calculatorController,request 范围,用 managed-property 注入

<managed-bean>    <managed-bean-name>calculatorController</managed-bean-name>    <managed-bean-class>      com.arcmind.jsfquickstart.controller.CalculatorController    </managed-bean-class>    <managed-bean-scope>request</managed-bean-scope>    <managed-property>      <property-name>calculator</property-name>      <value>#{calculator}</value>    </managed-property> </managed-bean>

CalculatorController 要使用 calculator,所以注入了 calculator。这样就可以使用 calculator 并让它与 JSF 相互隔离,这是良好的模型对象应该具备的性质。JSF 相关代码只出现在 CalculatorController 中。这种良好的关注点隔离会使代码的可测试性和可重用性更好。

CalculatorController 的 JSF 绑定组件

根据设计,CalculatorController 了解 JSF 的许多情况。CalculatorController 绑定三个 JSF 组 件,其中之一是 resultsPanel,它代表显示计算器结果的面板,见清单 29:

清单 29. CalculatorController 的 resultsPanel

private UIPanel resultsPanel; ... public UIPanel getResultsPanel() {   return resultsPanel; } public void setResultsPanel(UIPanel resultPanel) {   this.resultsPanel = resultPanel; }

resultsPanel 通过 JSF 绑定到 CalculatorController,见清单 30 中的 binding 属性:

清单 30. 把组件绑定到控制器

<h:panelGroup binding="#{calculatorController.resultsPanel}" rendered="false">   <h4>Results</h4>   <h:panelGrid columns="1" rowClasses="oddRow, evenRow"    styleClass="resultGrid">    <h:outputText value="First Number # {calculatorController.calculator.firstNumber}"/>    <h:outputText value="Second Number # {calculatorController.calculator.secondNumber}"/>    <h:outputText value="Result #{calculatorController.calculator.result}"/>   </h:panelGrid> /h:panelGroup>

JSF 1.2入门,第1部分 构建基本应用程序(16)

时间:2011-08-09 IBM Richard Hightower

在清单 30 中,binding="#{calculatorController.resultsPanel}" 通过绑定关联 resultsPanel 组 件。实际上,JSF 会看到这个表达式,在装载页面时,它通过调用 calculateController.setResultsPanel 方法注入 resultsPanel 组件。这个方便的机制让我们能够以程 序方式操作组件的状态,不需要在组件树中移动。

实际上,JSF 所做的操作是调用 calculateController.getResultsPanel。如果这个调用返回一个组 件,JSF 视图就会使用这个组件。如果 calculateController.getResultsPanel 返回 null,JSF 就会创 建 resultPanel 组件,然后用基于绑定表达式的新组件调用 calculateController.setRes

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号