JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段监听器 - 编程入门网
HtmlSelectOneMenu 和 HtmlSelectOneRadio。
联系人应用程序(第二版)使用 <h:selectOneMenu>。为此,需要添加三个新的模型对象: Group(见 清单 7)、Tag 和 ContactType。还要添加两个新的存储库对象:GroupRepository 和 TagRepository,它们与 ContactRepository 相似。ContactType 不需要存储库,因为它是一个 Enum。 Contact 类现在有三个新属性:它所属的组(group)、与它相关联的标记(tags)和它的类型(type) 。 清单 7. 子视图 contacts.jsp/form.jsp
JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段监听器(6)时间:2011-08-09 IBM Richard Hightower注意,selectOneMenu 使用 value 属性将 selectOneMenu 绑定到 selectedGroupId。selectOneMenu 元素体中包含一个 <f:selectItems>,它的值绑定到 groups 属性:value=# {contactController.groups}。在后端 bean 中创建组列表。selectedGroupId 属性和 groups 属性的代 码见清单 8: 清单 8. 构建组列表
groups 属性返回 SelectItem 的列表。SelectItem 类用来表示列表中的一个列表项。UISelectMany 和 UISelectOne 组件都使用这个类。注意,getGroups 方法使用 groupRepository 获得组列表,这是一 个像 contactRepository 那样注入的存储库对象。groupRepository 管理 Group 领域对象。一个 Group 代表一个组,一个 Contact 代表一个联系人。getGroups() 创建一个 SelectItem 列表,使用 group.id 属性作为值,使用 group.name 属性作为标签。 注意,这里要添加一个值为 -1 的 “select one” SelectItem。使用这个值来判断是否已经选择了 列表项。通过在 selectOneMenu 中使用 <f:validateLongRange minimum="1" />,判断出未选择 列表项的情况(见 清单 7)。还要注意,selectOneMenu 使用 validatorMessage="required" 显示一个 简短的错误消息。 注意,清单 8 直接调用存储库。如果存储库实际上与一个数据库或缓存通信,那么为了进行错误处理 并在属性中公开所选择的列表项,需要在动作方法中进行调用。 在提交表单时,设置 selectedGroupId。绑定到更新按钮和创建按钮的 persist() 使用 selectedGroupId 在存储库中查找这个组,见清单 9: 清单 9. 更新 persist() 以使用 selectedGroupI |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |