且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

《Java EE 7精粹》—— 3.8 验证数据

更新时间:2022-10-12 22:08:10

本节书摘来异步社区《Java EE 7精粹》一书中的第3章,第3.8节,作者:【美】Arun Gupta,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.8 验证数据

除了使用JSF内置的验证器和创建自定义的验证器,还可以使用Bean验证为一个backing bean定义指定的约束。

试想在一个简单的Web应用程序中有一个页面,其表单内包含多个文本字段:

《Java EE 7精粹》—— 3.8 验证数据

假设每个文本字段绑定到一个托管Bean的属性,且该属性至少有一个相关的Bean验证约束注解:

《Java EE 7精粹》—— 3.8 验证数据

每个h:inputText元素是由一个UIInput组件支持的,包含一个验证器实例,它的id和javax.faces.Bean相关联。与用户指定的验证约束关联的验证器的validate方法,在处理验证阶段被调用。

javax.faces.Bean标准验证器也确保每一个导致ConstraintViolation的模型数据被包装到FacesMessage中,并与所有其他类型的验证器一样添加到FacesContext中。然后,该消息与其他验证消息的处理一样显示给用户。

一个或多个验证组可以与一个输入标签关联:

《Java EE 7精粹》—— 3.8 验证数据

这也可以用于创建跨多个页面的验证。

验证组也可以与一组输入标签关联:

《Java EE 7精粹》—— 3.8 验证数据

在这段代码中,标识为#{person.name}和#{person.age}的字段的相关约束会被验证。