spring的jsr 303小例子
来源:互联网 发布:做淘宝客服需要交钱吗 编辑:程序博客网 时间:2024/06/06 09:57
用于验证传进来的参数
1.User类
public class User implements Serializable {
@NotNull(message="名字不能为空")
private StringuserName;
private Stringemail;
public String getUserName() {
returnuserName;
}
publicvoid setUserName(StringuserName) {
this.userName =userName ==null ?null :userName.trim();
}
public String getEmail() {
returnemail;
}
publicvoid setEmail(Stringemail) {
this.email =email ==null ?null :email.trim();
}
}
2.Controller
@Controller
@RequestMapping(value = "/hello")
public class TestController {
@RequestMapping(value = "/index", method = RequestMethod.GET)
@ResponseBody
public String test(@Valid Useruser){
return"test";
}
}
3.统一处理controller的异常类
@ControllerAdvice
public class ControllerValidationHandler {
@ExceptionHandler(BindException.class)
@ResponseBody
public void processValidationError(BindExceptionex) {
BindingResult result =ex.getBindingResult();
FieldError error = result.getFieldError();
List<ObjectError> errors = result.getAllErrors();
for (ObjectError objectError : errors) {
LOG.error("code:{},message:{}", objectError.getCode(), objectError.getDefaultMessage());
}
}
}
4.配置依赖
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.2.1.Final</version>
</dependency>
5.前端测试
6.总结
一旦前端对应的user的userName为空,那么这个验证框架就会在controller层抛出异常,而@ControllerAdvice注解的类会对这个异常统一进行处理,然后我们可以自己选择如何处理,再返回给前端
- spring的jsr 303小例子
- 几个Spring的小例子
- spring boot的小例子
- Spring验证(JSR-303)
- Spring mvc 基于JSR-303的注解校验
- 第二章 Spring 的一个小例子
- Spring Hibernate 组合的小例子
- 整合 JSF+Spring+Hibernate的小例子
- Spring反向控制的一个小例子
- SpringMVC+Spring+Hibernate的小例子
- Spring:快速入门的小例子
- SpringMVC+Spring+Hibernate的小例子
- 基于注解的spring aop小例子
- Spring入门-一个简单的小例子
- Spring 3 Validation (jsr-303)
- spring mvc + JSR-303验证框架
- JSR-303 Spring MVC 消息国际化 配置
- JSR-303 Spring MVC 消息国际化 配置
- rpm包管理详解(1)
- 三角网格(Triangle Mesh)
- Faster R-CNN 的Caffe实现
- BZOJ2797: [Poi2012]Squarks
- 软件开发需求分析规范
- spring的jsr 303小例子
- 输出菱形
- Intervals 【区间差分约束】基础
- hdu1317—XYZZY(floyed+Bellman-Ford)
- iOS 如何录制mixer unit 的输出
- rpm包管理详解(2)
- 1168: 复数加法
- NamedParameterJdbcTemplate
- mathtype错误文件未找到MathPage.WLL