zoukankan      html  css  js  c++  java
  • 使用Hibernate验证用户信息

        1.注解

    @Null   被注释的元素必须为 null   
    @NotNull    被注释的元素必须不为 null   
    @AssertTrue     被注释的元素必须为 true   
    @AssertFalse    被注释的元素必须为 false   
    @Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值   
    @Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值   
    @DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值   
    @DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值   
    @Size(max=, min=)   被注释的元素的大小必须在指定的范围内   
    @Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内   
    @Past   被注释的元素必须是一个过去的日期   
    @Future     被注释的元素必须是一个将来的日期   
    @Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式   
       
    Hibernate Validator 附加的 constraint   
    @NotBlank(message =)   验证字符串非null,且长度必须大于0   
    @Email  被注释的元素必须是电子邮箱地址   
    @Length(min=,max=)  被注释的字符串的大小必须在指定的范围内   
    @NotEmpty   被注释的字符串的必须非空   
    @Range(min=,max=,message=)  被注释的元素必须在合适的范围内

    2.需要在方法上添加  @Valid 注解 以及可以  BindingResult 用来搜集验证时的错误信息

     @ApiOperation(value = "修改用户信息", notes = "修改用户信息", httpMethod = "POST")
        @PostMapping("update")
        public IMOOCJSONResult update(@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()){
                Map<String,String> errorMap=getErrors(result);
                return IMOOCJSONResult.errorMap(errorMap);
            }
    
            Users usersResult=centerUserService.updateUserInfo(userId,centerUserBO);
    
            usersResult=setNullProperty(usersResult);
            CookieUtils.setCookie(request,response,"user", JsonUtils.objectToJson(usersResult),true);
    
            return IMOOCJSONResult.ok();
        }

    3.添加相应方法搜集错误信息

    private Map<String,String> getErrors(BindingResult result){
        Map<String,String> map=new HashMap<>();
        List<FieldError> errorList=result.getFieldErrors();
        for (FieldError error : errorList) {
            //发生验证错误所对应的某一个属性
            String errorField=error.getField();
            //验证错误信息
            String errorMsg=error.getDefaultMessage();
            map.put(errorField,errorMsg);
    
        }
        return map;
    }

    4.对象上添加相应注解

    @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="confirmPassword", example="123456", required = false)
        private String confirmPassword;
    
    
        @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;

    5.测试...................

  • 相关阅读:
    JSP(工作原理,组成部分,指令标签,动作标签,隐式对象)
    会话技术cookie与session
    上下文对象-请求对象-响应对象(ServletContext
    反射
    Servlet
    Tomcat服务器
    Http协议
    客户端与服务器
    Oracle虚拟机 与 windows配置
    SQL语句简单整理
  • 原文地址:https://www.cnblogs.com/yangbom/p/14115915.html
Copyright © 2011-2022 走看看