JSR 303校验

2019-08-14  本文已影响0人  WhyDoWeLive

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

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";
    }
}
上一篇下一篇

猜你喜欢

热点阅读