怀疑论者的JSF - JSF转换与验证 - 编程入门网
已经完成了这个示例应用程序的转换处理代码!到目前为止完成的应用程序如下所示。
图 8. 带有转换处理的示例应用程序 JSF 验证 如前所述,JSF 验证可以确保应用程序数据包含预期的内容,例如: java.util.Date 为 MM/yyyy 格式。 Float 在 1.0 和 100.0 之间。 在 JSF 中有 4 种验证: 自带验证组件。 应用程序级验证。 自定义验证组件(它实现了 Validator 接口)。 在 backing bean 中的验证方法(内联)。 我们将在下面的讨论中介绍并展示每一种形式。 JSF 验证生命周期和组件 图 9 显示了用户注册表单中名字字段的生命周期案例分析。代码引用被有意解释为伪代码(pseudo-code)。 图 9. JSF 生命周期中的验证 下面是 JSF 提供的一组标准验证组件: DoubleRangeValidator:组件的本地值必须为数字类型,必须在由最小和/或最大值所指定的范围内。 LongRangeValidator:组件的本地值必须为数字类型,并且可以转换为长整型,必须在由最小和/或最大值所指定的范围内。 LengthValidator:类型必须为字符串,长度必须在由最小和/或最大值所指定的范围内。 怀疑论者的JSF - JSF转换与验证(7)时间:2011-03-13 IBM Rick Hightower标准验证 在我们的示例应用程序中,用户的年龄可以是任意有效的整数(byte、short、int)。因为将年龄设置为(比如说)-2 是无意义的,所以可能要对这个字段添加一些验证。下面是一些简单的验证代码,用以确保年龄字段中的数据模型完整性:
完成年龄字段后,可能希望指定对名字字段的长度加以限制。可以像这样编写这个验证:
图 10 显示了由上面标准验证示例所生成的默认详细验证消息。 图 10. 标准验证错误消息 尽管 JSF 自带的验证在许多情况下都可以满足,但是它有一些局限性。在处理电子邮件验证、电话号码、URL、日期等数据时,有时编写自己的验证器会更好一些,不过我们将在稍后对此进行讨论。 应用程序级验证 在概念上,应用程序级验证实际上是业务逻辑验证。JSF 将表单和/或字段级验证与业务逻辑验证分离开。应用程序级验证主要需要在 backing bean 中添加代码,用这个模型确定绑定到模型中的数据是否合格。对于购物车,表单级验证可以验证输入的数量是否有效,但是需要使用业务逻辑验证检查用户是否超出了他或者她的信用额度。这是在 JSF 中分离关注点的另一个例子。 例如,假定用户单击了绑定到某个操作方法的按钮,那么就会在调用应用程序阶段调用这个方法(有关的细节,请参见上面的图 1)。假定在更新模型阶段进行了更新,那么在对模型数据执行任何操纵之前,可以添加一些验证代码,根据应用程序的业务规则检查输入的数据是否有效。 例如,在这个示例应用程序中,用户单击了 Register 按钮,这个按钮被绑定到应用程序控制器的 register() 方法。我们可以在 register() 方法中添加验证代码,以确定名字字段是否为 null。如果该字段为 null,那么还可以在 FacesContext 中添加一条消息,指示相关组件返回到当前页。 其实它现在并不是业务规则逻辑的一个好例子。更好的例子是检查用户是否超出了她或者她的信用额度。在该例中,不是检查字段是否为空,我们可以调用模型对象的方 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |