zoukankan      html  css  js  c++  java
  • SpringBoot学习之验证信息国际化

    以登录为例:

    1.controller的登录方法:

    @RequestMapping("/SSOAuth/login")
    @ResponseBody
    public ResponseValue login(@Valid @RequestBody LoginParam param, BindingResult result) {
      //验证数据合法性
      if (result.hasErrors()) {
        ResponseValue responseValue = ResponseValue.newInstance(HeadCode.BAD_REQUEST);
        responseValue.getHead().setMsg(result.getFieldError().getDefaultMessage());
        return responseValue;
      }

      String loginName = param.getLoginName();
      String pwd = param.getPassword();
      if (loginValidation.exist(loginName) == false) {
        ResponseValue value = ResponseValue.newInstance(HeadCode.NOT_FIND);
        value.getHead().setMsg("用户信息不存在!");
        return value;
      }
      if (loginValidation.verify(loginName, pwd) == false) {
        ResponseValue value = ResponseValue.newInstance(HeadCode.BAD_REQUEST);
        value.getHead().setMsg("密码不正确!");
        return value;
      }
      return result(loginName, new Date());
    }

    该方法的关键是@valid注解和BindingResult结合使用验证传入的信息是否合法,LoginParam这是验证对象。

    BindingResult是所有的错误信息都会保存在这个类中,我们可以使用result.hasErrors()  判断是否有错误信息。

    2.验证对象:

    public class LoginParam implements Serializable {

      private static final long serialVersionUID = 1L;

      @NotBlank(message="{NotBlank.name}")
      @Length(min=0, max=50, message="loginName长度超出范围")
      private String loginName;

      @NotBlank(message="{NotBlank.password}")
      @Length(min=6, max=10, message="password长度超出范围")
      private String password;

      public String getLoginName() {
        return loginName;
      }

      public void setLoginName(String loginName) {
      this.loginName = loginName;
      }

      public String getPassword() {
        return password;
      }

      public void setPassword(String password) {
        this.password = password;
      }
    }

    Validator国际化配置文件说明

    1.国际化配置文件必须放在classpath的根目录下,即src/java/resources的根目录下。

    2.国际化配置文件必须以ValidationMessages开头,比如ValidationMessages.properties 或者 ValidationMessages_en.properties。

    3.有些代码是很难使用Validator的注解来实现,比如存在name,那么返回“该name已经存在了”。利用result.rejectValue("name", "misFormat", "该name已经存在了!");

  • 相关阅读:
    几维安全SDK应用加固,全线5折为APP保驾护航
    物联网渗透测试威胁建模,捕捉应用相关安全风险
    【几维安全】Android代码混淆,代码混淆工具,Android版使用详细说明
    畅想物联网安全未来,几维安全让万物互联更安全
    域起网络携手几维安全,护航互联网游戏业务安全
    Android 加密, Android 常用加密, Android So 库高强度加密
    车联网安全威胁分析及防护思路,几维安全为智能汽车保驾护航
    C#实现基于ffmpeg加虹软的人脸识别
    OSX 下搭建Asp.Net vNext的开发环境
    验证码识别记录
  • 原文地址:https://www.cnblogs.com/michaelShao/p/6832184.html
Copyright © 2011-2022 走看看