基于注解后端数据校验-SpringMVC 、Spring和 Hibernate Validator结合
2017-09-21 10:09
288 查看
1、依赖jar包
2.一般在conroller层中用对象接受参数信息时,会对参数进行校验,为了简化代码,hibernate validator提供了基于注解方式的参数校验
3.controller层加入@valid注解
到此即可实现参数校验,同时返回前端校验后的错误信息。
<dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-validator</artifactid> <version>5.4.1.Final</version> </dependency> <dependency> <groupid>org.hibernate</groupid> <artifactid>hibernate-validator-annotation-processor</artifactid> <version>5.4.1.Final</version> </dependency> <dependency> <groupid>javax.validation</groupid> <artifactid>validation-api</artifactid> <version>2.0.0.Final</version> </dependency>
2.一般在conroller层中用对象接受参数信息时,会对参数进行校验,为了简化代码,hibernate validator提供了基于注解方式的参数校验
package com.user.vo; import com.alibaba.fastjson.JSON; import org.hibernate.validator.constraints.NotEmpty; /** * 注册对象实例类 * * @author CaiWei * @version 1.0 * @created 2017-09-12 23:44:26 * @since 1.0 **/ public class RegisterUserBean { @NotEmpty(message = "用户名不可为空") private String userName; private String nickName; @NotEmpty(message = "密码不可为空") private String passWord; @NotEmpty(message = "确认密码不可为空") private String confirmPwd; private String sex; private String mobile; public RegisterUserBean() { } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getNickName() { return nickName; } public void setNickName(String nickName) { this.nickName = nickName; } public String getPassWord() { return passWord; } public void setPassWord(String passWord) { this.passWord = passWord; } public String getConfirmPwd() { return confirmPwd; } public void setConfirmPwd(String confirmPwd) { this.confirmPwd = confirmPwd; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } @Override public String toString() { return JSON.toJSONSt a414 ring(this); } }
3.controller层加入@valid注解
package com.user; import com.alibaba.fastjson.JSON; import com.base.ResponseEntity; import com.user.entity.UserEntity; import com.user.service.IUserService; import com.user.vo.RegisterUserBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import javax.validation.Valid; import java.util.List; /** * something to description this class * * @author CaiWei * @version 1.0 * @created 2017-09-12 23:33:01 * @since 1.0 **/ @Controller @RequestMapping(value = "/user/register") public class UserRegisterController { private final Logger LOGGER = LoggerFactory.getLogger(UserRegisterController.class); @Autowired private IUserService userService; @RequestMapping(value = "/page") public String toRegisterPage() { return "/user/register"; } @RequestMapping(value = "/save",method = RequestMethod.POST) public ResponseEntity registered(@Valid RegisterUserBean userBean, BindingResult bindingResult) { LOGGER.info("注册的对象为:{}", JSON.toJSONString(userBean)); if (bindingResult.hasErrors()){ List<FieldError> errors = bindingResult.getFieldErrors(); for (FieldError error :errors){ LOGGER.info(error.getDefaultMessage()); } return new ResponseEntity().error(errors.get(0).getDefaultMessage()); } boolean res = false; if (!"{}".equals(JSON.toJSONString(userBean))) { UserEntity usr = new UserEntity(); usr.setUsername(userBean.getUserName()); usr.setCreatetime(System.currentTimeMillis() / 1000); usr.setNickname(userBean.getNickName()); usr.setMobile(userBean.getMobile()); usr.setUsertype(0); usr.setPassword(userBean.getConfirmPwd()); res = userService.save(usr); } return res ? new ResponseEntity().success() : new ResponseEntity().error(); } }
到此即可实现参数校验,同时返回前端校验后的错误信息。
相关文章推荐
- SpringMVC 和 Hibernate Validator的结合(初级)- 基于注解后端数据校验
- SSM简单整合(Mybatis,Spring,SpringMVC,基于注解和xml文件配置)
- spring 启动后执行自我操作(如加入数据进入缓存) 基于注解
- 四、初学SpringMVC+Mybatis之Spring基于注解的组件扫描
- 基于maven的SpringMVC,Spring,MyBatis的全注解配置
- SpringMVC经典系列-04基于Spring3.1注解的方式进行项目开发---【LinusZhu】
- Spring Boot之基于注解的数据格式化
- 九、SpringBoot异常之基于SpringMVC提供的注解
- 基于大数据的房价分析--4.用spring搭建后端接口
- SpringMVC + ehcache( ehcache-spring-annotations)基于注解的服务器端数据缓存
- 基于注解的Spring MVC整合Hibernate(所需jar包,spring和Hibernate整合配置,springMVC配置,重定向,批量删除)
- SpringBoot 结合 JSR303 对前端数据进行校验
- 04springMVC结构,mvc模式,spring-mvc流程,spring-mvc的第一个例子,三种handlerMapping,几种控制器,springmvc基于注解的开发,文件上传,拦截器,s
- 自己写的基于java Annotation(注解)的数据校验框架
- 基于maven的SpringMVC,Spring,MyBatis的全注解配置
- springMVC学习-基于注解的SpringMVC
- MyBatis语言与spring结合编写sql语言(基于注解)
- spring基于xml格式的前后端数据交换的配置 之 MarshallingHttpMessageConverter + xstream
- SpringMVC + ehcache( ehcache-spring-annotations)基于注解的服务器端数据缓存
- 基于注解的spring3+hibernate3的springMVC框架