发表于: 2018-01-29 22:00:23

1 746


今天完成的事情

1.学习hibernate-validator做数据校验。

1.1添加依赖

<dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-validator</artifactId>
   <version>5.4.1.Final</version>
</dependency>

<dependency>
   <groupId>javax.el</groupId>
   <artifactId>javax.el-api</artifactId>
   <version>2.2.4</version>
</dependency>
<dependency>
   <groupId>org.glassfish.web</groupId>
   <artifactId>javax.el</artifactId>
   <version>2.2.4</version>
</dependency>

1.2使用注解方式定义属性。

@NotBlank(message = "不能为空",groups = {Register.class})
@Size(min = 6, max = 20,message = "用户名必须在6和20之间",groups = {Register.class})
private String userName;

@NotBlank(message = "不能为空",groups = {Register.class})
@Size(min = 6, max = 20,message = "密码必须在6和20之间",groups = {Register.class})
private String passWord;
//默认的头像图片名
private String headPicture = "Fh6Q2Ax_QgYygzd4vJxF4k3ngRda";
private Integer accountStatus= 0;  //0未激活,1激活

@NotBlank(message = "不能为空",groups = {Register.class})
@Email(message = "格式不正确",groups = {Register.class})
private String email;
private String emailCode;

@NotBlank(message = "不能为空",groups = {Register.class, Update.class})
@Pattern(regexp="[1-9][0-9]{10}",message = "手机号格式不对",groups = {Register.class, Update.class})
private String phoneNumber;

@NotBlank(message = "不能为空",groups = {Update.class})
@Pattern(regexp="[1-9][0-9]{5,10}",message = "qq格式不对",groups = {Update.class})
private String qq;

1.3在controller中添加对reques的校验。

注册

@RequestMapping(value = "/register",method = RequestMethod.POST)
public String registerpost(@Validated({Register.class}) Student student, BindingResult bindingResult, HttpServletRequest request) {
//数据校验
   if(bindingResult.hasErrors()){
List<FieldError> errors = bindingResult.getFieldErrors();
       for(FieldError fieldError:errors){
logger.info("验证的错误"+fieldError);
           request.setAttribute("ERR_"+ fieldError.getField(),fieldError.getDefaultMessage());
           logger.info("request信息"+request);
       }
return "register";

效果:


更新个人信息:


遇到的问题

1.注册和更新页面需要验证的信息不同,如果使用一套校验系统会出现校验错误。

解决方法,分组校验。

1.1.interface

1.2.pojo,    使用group = { }指定属性分组。

1.3.controller   指定需要使用的group


2 运行项目出现  .http-nio-8080-exec-3 错误,查百度说是tomcat内存不足,改内存分配。


收获

1.学会了使用hibernate-validator做数据校验。


明天的计划

1.做好第三方api的异常处理。

2.做图片迁移功能。

3.完善业务逻辑。




任务7开始时间:2018.1.27

预计完成时间:2018.2.5

禅道:http://task.ptteng.com/zentao/project-task.html







返回列表 返回列表
评论

    分享到