快速业务通道

怀疑论者的JSF: JSF应用程序的生命周期 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
ist}">       <f:selectItems value="#{CDManagerBean.subCategories}"/>     </h:selectOneListbox>     <h:message for="subcategory" styleClass="errorText"/>    </h:panelGrid>    <br />    <h:commandButton id="submitAdd" action="#{CDManagerBean.addCD}" value="Add CD"     rendered="#{not CDManagerBean.editMode}"/>    <h:commandButton id="submitUpdate" action="#{CDManagerBean.updateCD}" value="Update CD"     rendered="#{CDManagerBean.editMode}"/>    </h:form> </f:view>

怀疑论者的JSF: JSF应用程序的生命周期(7)

时间:2011-04-11 IBM Rick Hightower

关于代码的注释

每个输入域都将该域绑定到控制器的 cd 属性的一个属性上。例如,标题的输入文本域被 使用下面的 JSF 绑定表达式绑定到 cd 属性上:value="#{CDManagerBean.cd.title}"。

您可能会注意到在清单 5 中几乎没有什么 HTML 语句。这是由于 panelGrid 会生成大部 分的 HMTL 语句。注意实际的外观是由与 panelGrid 相关的样式表决定的。属性 rowClasses="row1, row2" 会为正在修改的行设置 CSS 类。第一行是白色的,第二行是灰色 的。您还可以为列或其他内容指定 CSS 类。JSF panelGrid 组件可以方便地快速设置表单的 布局。如果您希望实现 panelGrid 没有提供的功能,就不能使用它:不过可以使用 HTML 自 己设置组件的布局。然而,如果您发现自己在很多页面上都使用了定制的 HTML,那么就可能 会考虑编写自己的定制组件。这种想法可以让您尽可能 DRY 地重用 HTML 语句(DRY 是 don''t repeat yourself 的缩写,这个术语来自于 Dave Thomas 的 Pragmatic Programmer 一书)。

关于清单 5 另外需要注意的是控制器有一个 editMode 属性,由 cdForm.jsp 用于有选 择地显示 submitAdd 按钮或 submitUpdate 按钮;submitAdd 按钮是在表单不处于编辑模式 时显示的。submitUpdate 按钮是在表单处于编辑模式时显示的。这可以简化为编辑和添加模 式使用相同的 JSP。(默认情况下,表单不处于编辑模式。)这种功能是由 cdForm.jsp 中 的每个按钮上的呈现表达式实现的。例如,清单 6 列出了 submitAdd button rendered="# {not CDManagerBean.editMode}" 上的呈现表达式。submitAdd 按钮被使用表达式 (action="#{CDManagerBean.addCD}") 绑定到 addCD 方法上。

清单 6. 使用 addCD() 方法添加一个 CD

[StoreController.java] /** * Add a cd to the store. * * @return outcome */ public String addCD() {    store.addCD(this.cd);    return "success"; }

对域进行有效性验证

在 addCD 方法被调用之前,JSF 必须对 GUI 中的域进行有效性验证。这实际上非常简单 ,因为您还没有为域关联任何有效性验证条件。在应用请求值阶段,这些值被从请求参数拷 贝到组件值中(这是由组件本身进行的)。现在,价格从一个字符串转换为一个浮点类型。 如果用户为价格输入的是“abc”,那么转换为浮点类型的操作就会失败,控制权将被重新定 向到 cdForm.jsp 页面上,供最终用户进行修正。与价格相关的 h:message 将显示一个转换 错误消息。如果所有的值都可以正常进行类型转换,并且现在都可以使用了(如果需要的话 ),那么您就可以进行有效性验证的处理了。由于这个示例程序并没有与组件关联任何有效 性验证规则(在下一篇文章中我们将介绍这种特性),因此您可

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号