美文网首页
JSR 303校验

JSR 303校验

作者: WhyDoWeLive | 来源:发表于2019-08-14 20:36 被阅读0次

    JSR 303中定义了一套可标注在成员变量,属性方法上的校验注解

    • @Null:验证对象是否为空
    • @NotNull:验证对象是否不为空,无法检查长度为0的字符串,用于验证基本数据类型
    • @AssertTure:验证Boolean对象是否为true
    • @AssertFalse:验证Boolean对象是否为false
    • @Max(value):验证Number和String对象是否小于等于指定的值
    • @Min(value):验证Number和String对象是否大于等于指定的值
    • @DecimalMax、@DecimalMin、@Digits、@Size、@Past、@Future、@Pattern

    Hibernate Validator是JSR 303的一个参考实现,除了支持所有标准的校验还扩展了如下注解:
    @NotBlank、@URL、@Email、@CreditCardNumber、@Length、@NotEmpty、@Range

    示例

    前端代码
    <form:form modelAttribute="user" method="post" action="login">
        <table>
            <tr>
                <td>登录名:</td>
                <td><form:input path="loginname"></td>
                <td><form:errors path="loginname" cssStyle="color:red"></td>
            </tr>
        </table>
    </form:form>
    
    后端代码
    public class User implements Serializable{
        @NotBlank(message="登录名不能为空")
        private String loginname;
    }
    
    @Controller
    public class UserController{
        @RequestMapping(value="/{formname}")
        public String loginForm(
                @PathVariable String formName,
                Model model){
            User user = new User();
            model.Attribute("user", user);
            //动态跳转页面
            return formName;
        }
    
        //数据校验使用@Valid,后面跟着Errors对象保存校验信息,根据是否有错误决定跳转哪个页面
        @RequestMapping(value="login", method=RequestMethod.POST)
        public String login(
                @Valid @ModelAttribute User user,
                Errors errors,
                Model model){
            logger.info(user);
            if(errors.hasErrors()){
                return "registerForm";
            }
            model.addAttribute("user", user);
            return "success";
        }
    }
    

    相关文章

      网友评论

          本文标题:JSR 303校验

          本文链接:https://www.haomeiwen.com/subject/vgvnjctx.html