JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段监听器 - 编程入门网
...
public String getAsString(FacesContext facesContext, UIComponent component,
Object value) {
return value == null ? "-1" : "" + ((Group) value).getId();
}
}
清单 26 给出 TagConverter 的 getAsString() 方法: 清单 26. TagConverter 的 getAsString() 方法
在 Faces 上下文中注册定制转换器 编写了自己的转换器之后,需要让 JSF 在每次遇到导致 Group 或 Tag 的值绑定时使用这些转换器。 这需要在 faces-config.xml 文件中使用 <converter> 元素注册转换器,见清单 27: 清单 27. 在 faces-config.xml 中注册转换器
清单 27 用 <converter-class> 元素指定转换器类,用 <converter-for-class> 元素 指定转换所针对的类。 让转换器处理一组标记 遗憾的是,转换器不能处理泛型,比如 List<Tag>。JSF 不允许对泛型列表进行转换。(它应 该可以。Java Persistence API [JPA] 可以用 List<Tag> 定义关系。JPA 和 JSF 1.2 都是与 Java EE 5 同时出现的,所以您会认为它们都支持泛型。)为了解决这个问题,可以使用数组。清单 28 演示如何使用 Tag 数组,而不是 List<Tag>: 清单 28. 使用数组代替泛型
JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段监听器(14)时间:2011-08-09 IBM Richard HightowerJSF 检验器 转换和检验的主要用途是,在更新模型数据之前,确保值符合要求。这样,在调用应用程序方法来处 理数据时,就可以对模型的状态做某些假设。通过使用转换和检验,可以集中精力考虑业务逻辑,而不必 为输入数据的限制条件(比如空值检测、长度限制、范围边界等等)操心。 所以,应该在更新模型数据阶段中将组件数据绑定到托管 bean 模型之前执行转换和检验。正如在 “ JSF 应用程序的生命周期” 一节中看到的,在处理检验阶段进行转换和检验 — 先转换,再检验。 在 JSF 中有四种检验形式: 内置的检验组件 应用程序级检验 后端 bean 中的检验方法(内联) 定制的检验组件(它们实现 Validator 接口) 本节解释这些检验形式并演示它们的使用方法。 标准检验 JSF 提供三个标准检验组件: DoubleRangeValidator:组件的本地值必须是数字类型的;必须处于最小值、最大值或这两者指定的 范围内。 LongRangeValidator:组 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |