读书人

JSR 303 - Bean Validation 引见及最佳

发布时间: 2012-09-03 09:48:39 作者: rapoo

JSR 303 - Bean Validation 介绍及最佳实践 【转】

原文链接:http://www.ibm.com/developerworks/cn/java/j-lo-jsr303/index.html

?

?

图 1 是报表管理系统的结构图,是典型的 MVC(Model-View-Controller)应用。Controller 负责接收和处理请求,Servlet 扮演 Controller 的角色去处理请求、业务逻辑并转向合适的 JSP 页面。在 Servlet 中对数据进行验证。JSP 扮演 View 的角色以图型化界面的方式呈现 Model 中的数据方便用户交互。Model 就是此系统进行操作的数据模型,我们对这部分加以简化不对数据进行持久化。

图 2 展示的是订单管理系统的数据模型。

对这些信息的校验,使用 Bean Validation API


清单 7. 代码片段

?

如果用户不填写任何信息提交订单,相应的错误信息将会显示在页面上


图 4. 验证后返回错误信息
JSR 303 - Bean Validation 引见及最佳实践 【转】

其实在整个程序的任何地方都可以调用 JSR 303 API 去对数据进行校验,然后将校验后的结果返回。


清单 8. 调用 JSR 303 API 进行校验

  Order order = new Order(); … ValidatorFactory factory = Validation.buildDefaultValidatorFactory();  Validator validator = factory.getValidator();  Set<ConstraintViolation<Order>> violations = validator.validate(order); 

?

结束语

JSR 303 的发布使得在数据自动绑定和验证变得简单,使开发人员在定义数据模型时不必考虑实现框架的限制。当然 Bean Validation 还只是提供了一些最基本的 constraint,在实际的开发过程中,用户可以根据自己的需要组合或开发出更加复杂的 constraint

读书人网 >JavaScript

热点推荐