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

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

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

3.8 验证数据

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

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

69bd1b14613d1447b0258f35fd734d1fa3f57616

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

71fe38a6388eac2acfdd85721fca8ae6eaf8a7d8

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

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

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

d6f6fea4c3c5f3a80b45b14274c180636a1e44c9

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

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

cd66ccffdc27019457bf29a58f3db1d053f6034d

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

相关文章
|
2月前
|
Java API 开发工具
【Azure Developer】Java代码实现获取Azure 资源的指标数据却报错 "invalid time interval input"
在使用 Java 调用虚拟机 API 获取指标数据时,因本地时区设置非 UTC,导致时间格式解析错误。解决方法是在代码中手动指定时区为 UTC,使用 `ZoneOffset.ofHours(0)` 并结合 `withOffsetSameInstant` 方法进行时区转换,从而避免因时区差异引发的时间格式问题。
178 3
|
3月前
|
数据采集 JSON Java
Java爬虫获取1688店铺所有商品接口数据实战指南
本文介绍如何使用Java爬虫技术高效获取1688店铺商品信息,涵盖环境搭建、API调用、签名生成及数据抓取全流程,并附完整代码示例,助力市场分析与选品决策。
|
3月前
|
数据采集 存储 前端开发
Java爬虫性能优化:多线程抓取JSP动态数据实践
Java爬虫性能优化:多线程抓取JSP动态数据实践
|
2月前
|
算法 Java
Java多线程编程:实现线程间数据共享机制
以上就是Java中几种主要处理多线程序列化资源以及协调各自独立运行但需相互配合以完成任务threads 的技术手段与策略。正确应用上述技术将大大增强你程序稳定性与效率同时也降低bug出现率因此深刻理解每项技术背后理论至关重要.
185 16
|
2月前
|
安全 Java API
Java SE 与 Java EE 区别解析及应用场景对比
在Java编程世界中,Java SE(Java Standard Edition)和Java EE(Java Enterprise Edition)是两个重要的平台版本,它们各自有着独特的定位和应用场景。理解它们之间的差异,对于开发者选择合适的技术栈进行项目开发至关重要。
294 1
|
7月前
|
自然语言处理 Java 关系型数据库
Java|小数据量场景的模糊搜索体验优化
在小数据量场景下,如何优化模糊搜索体验?本文分享一个简单实用的方案,虽然有点“土”,但效果还不错。
140 0
|
11月前
|
前端开发 JavaScript Java
java常用数据判空、比较和类型转换
本文介绍了Java开发中常见的数据处理技巧,包括数据判空、数据比较和类型转换。详细讲解了字符串、Integer、对象、List、Map、Set及数组的判空方法,推荐使用工具类如StringUtils、Objects等。同时,讨论了基本数据类型与引用数据类型的比较方法,以及自动类型转换和强制类型转换的规则。最后,提供了数值类型与字符串互相转换的具体示例。
587 3
|
5月前
|
设计模式 算法 Java
Java SE 与 Java EE 组件封装使用方法及实践指南
本指南详细介绍了Java SE与Java EE的核心技术使用方法及组件封装策略。涵盖集合框架、文件操作、Servlet、JPA、EJB和RESTful API的使用示例,提供通用工具类与基础组件封装建议,如集合工具类、文件工具类、基础Servlet、实体基类和服务基类等。同时,通过分层架构集成示例展示Servlet、EJB和JPA的协同工作,并总结组件封装的最佳实践,包括单一职责原则、接口抽象、依赖注入、事务管理和异常处理等。适合希望提升代码可维护性和扩展性的开发者参考。
171 0
|
传感器 分布式计算 安全
Java 大视界 -- Java 大数据在智能安防入侵检测系统中的多源数据融合与分析技术(171)
本文围绕 Java 大数据在智能安防入侵检测系统中的应用展开,剖析系统现状与挑战,阐释多源数据融合及分析技术,结合案例与代码给出实操方案,提升入侵检测效能。
|
8月前
|
前端开发 Cloud Native Java
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现
博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
Java||Springboot读取本地目录的文件和文件结构,读取服务器文档目录数据供前端渲染的API实现