1. 导入pom.xml。一般springboot项目都会导入
因为hibernate在spring-boot-starter-web中(如图),故导入以下坐标即可
org.springframework.boot spring-boot-starter-web
2. 在需要验证的实体类的字段上加上相应注释验证
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.*; import java.util.Date; @ApiModel(value="用户对象", description="从客户端,由用户传入的数据封装在此entity中") public class CenterUserBO { @ApiModelProperty(value="用户名", name="username", example="json", required = false) private String username; @ApiModelProperty(value="密码", name="password", example="123456", required = false) private String password; @ApiModelProperty(value="确认密码", name="/confirm/iPassword", example="123456", required = false) private String /confirm/iPassword; @NotBlank(message = "用户昵称不能为空") @Length(max = 12, message = "用户昵称不能超过12位") @ApiModelProperty(value="用户昵称", name="nickname", example="杰森", required = false) private String nickname; @Length(max = 12, message = "用户真实姓名不能超过12位") @ApiModelProperty(value="真实姓名", name="realname", example="杰森", required = false) private String realname; @Pattern(regexp = "^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$", message = "手机号格式不正确") @ApiModelProperty(value="手机号", name="mobile", example="13999999999", required = false) private String mobile; @Email @ApiModelProperty(value="邮箱地址", name="email", example="imooc@imooc.com", required = false) private String email; @Min(value = 0, message = "性别选择不正确") @Max(value = 2, message = "性别选择不正确") @ApiModelProperty(value="性别", name="sex", example="0:女 1:男 2:保密", required = false) private Integer sex; @ApiModelProperty(value="生日", name="birthday", example="1900-01-01", required = false) private Date birthday; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String get/confirm/iPassword() { return /confirm/iPassword; } public void set/confirm/iPassword(String /confirm/iPassword) { this.confirmPassword = /confirm/iPassword; } public String getNickname() { return nickname; } public void setNickname(String nickname) { this.nickname = nickname; } public String getRealname() { return realname; } public void setRealname(String realname) { this.realname = realname; } public String getMobile() { return mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public Integer getSex() { return sex; } public void setSex(Integer sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } @Override public String toString() { return "CenterUserBO{" + "username='" + username + ''' + ", password='" + password + ''' + ", confirmPassword='" + confirmPassword + ''' + ", nickname='" + nickname + ''' + ", realname='" + realname + ''' + ", mobile='" + mobile + ''' + ", email='" + email + ''' + ", sex=" + sex + ", birthday=" + birthday + '}'; } }
3. 使用@Valid开启验证
@Api(value = "用户信息接口", tags = {"用户信息接口相关接口"}) @RestController @RequestMapping("userInfo") public class CenterUserController { @Autowired private CenterUserService centerUserService; @ApiOperation(value = "修改用户信息", notes = "修改用户信息") @PostMapping("/update") public JSonResult userInfo( @ApiParam(name = "userId", value = "用户id", required = true) @RequestParam String userId, @RequestBody @Valid CenterUserBO centerUserBO, BindingResult result, HttpServletRequest request, HttpServletResponse response){ //判断BindingResult是否保存错误的验证信息,如果有,直接return if (result.hasErrors()){ MaperrorMap = getErrors(result); return JSONResult.errorMap(errorMap); } Users userResult = centerUserService.updateUserInfo(userId, centerUserBO); userResult = setNullProperty(userResult); cookieUtils.setcookie(request, response, "user", JsonUtils.objectToJson(userResult),true); //TODO 后续要改,增加令牌token,会整合进redis,分布式会话 return JSONResult.ok(); } private Map getErrors(BindingResult result){ Map map = new HashMap<>(); List errorList = result.getFieldErrors(); for (FieldError error : errorList) { //发生验证错误所对应的某一个属性 String errorField = error.getField(); //验证错误的信息 String errorMsg = error.getDefaultMessage(); map.put(errorField, errorMsg); } return map; } }
4. 结果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)