JSF 1.2入门,第2部分 JSF生命周期、转换、检验和阶段监听器 - 编程入门网
件的本地值必须是数字类型的,并可以转换为 long;必须处于最小值、最大 值或这两者指定的范围内。
LengthValidator:类型必须是 string;长度必须处于最小值、最大值或这两者指定的范围内。 在这个示例应用程序中,联系人的年龄可以是任何有效的整数。因为 -2 这样的年龄是没有意义的, 所以需要给这个字段添加某些检验。清单 29 使用 <f:validateLongRange> 进行简单的检验,确 保年龄字段中的数据是有意义的: 清单 29. 使用 <f:validateLongRange> 检验年龄的值是否合理
在检验年龄字段之后,可能希望为名字字段指定长度限制,见清单 30。 清单 30. 确保 firstName 不是太长也不是太短
尽管 JSF 内置的检验在许多场景中都是有效的,但是它们的功能有限。在处理电子邮件、电话号码、 URL、日期等数据时,编写自己的检验器可能更好(本节后面会讨论定制的检验器)。还可以使用 Tomahawk、Shale、JSF-Validations 和 Crank 提供的检验器。 应用程序级检验 从概念上说,应用程序级检验实际上是业务逻辑检验。JSF 将表单级或字段级检验与业务逻辑检验分 隔开。应用程序级检验需要在使用模型的托管 bean 方法中添加代码,以确保绑定到模型的数据的质量。 例如,对于购物车来说,可以使用表单级检验确保输入的数量是有效的,但是还需要通过业务逻辑检验检 查用户是否超过了他的信用限额。这是 JSF 中关注点隔离的另一个例子。 假设用户单击一个绑定到动作方法的按钮,这个动作方法在调用应用程序阶段被调用(细节参见前面 的 图 5)。在对模型数据进行任何操作之前(通常在更新模型阶段更新模型数据),可以根据应用程序 的业务逻辑检查输入的数据是否是有效的。 例如,在这个示例应用程序中,用户单击 Update/Add 按钮,这个按钮绑定到应用程序控制器的 persist() 方法。可以在 persist() 方法中添加检验代码,检查系统中是否已经存在当前的 firstName/lastName 组合。如果这个联系人已经存在,那么可以在 FacesContext 中添加一个消息,然 后返回 null(如果在这个动作上应用了导航规则),从而让 JSF 留在当前视图上。 我们再看一下联系人应用程序,这一次在 persist() 动作方法中执行一些应用程序级逻辑,见清单 31 和清单 32。清单 31 给出控制器中的应用程序级检验逻辑: 清单 31. 控制器中的应用程序级检验逻辑
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |