怀疑论者的JSF: JSF应用程序的生命周期 - 编程入门网
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
对域进行有效性验证 在 addCD 方法被调用之前,JSF 必须对 GUI 中的域进行有效性验证。这实际上非常简单 ,因为您还没有为域关联任何有效性验证条件。在应用请求值阶段,这些值被从请求参数拷 贝到组件值中(这是由组件本身进行的)。现在,价格从一个字符串转换为一个浮点类型。 如果用户为价格输入的是“abc”,那么转换为浮点类型的操作就会失败,控制权将被重新定 向到 cdForm.jsp 页面上,供最终用户进行修正。与价格相关的 h:message 将显示一个转换 错误消息。如果所有的值都可以正常进行类型转换,并且现在都可以使用了(如果需要的话 ),那么您就可以进行有效性验证的处理了。由于这个示例程序并没有与组件关联任何有效 性验证规则(在下一篇文章中我们将介绍这种特性),因此您可 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |