1. 程式人生 > >關於SpringMVC驗證框架的使用過程

關於SpringMVC驗證框架的使用過程

關於Spring驗證框架Validator的使用

在JavaEE的後端開發中,常常會涉及到資料的驗證,使用Spring的驗證框架可以很好的幫助我們完成需求。 在整個驗證框架的使用中,主要分為了兩個部分:後端驗證和前端顯示。 後端驗證: 第一步:需要建立一個進行驗證的類,並實現Validator介面

public class UserValidator implements Validator {
    @Override
    public boolean supports(Class<?> clazz) {
        return User.class.equals(clazz);
    }

    @Override
    public void validate(Object target, Errors errors) {
        User user = (User) target;
        if(null == user.getPassword() || "".equals(user.getPassword())){
            errors.rejectValue("password",null,null,"password is null");
        }
    }
}

supports方法用於判斷是否是我們需要驗證的類,如果不是將會丟擲異常,validate方法對資料進行判斷,並將判斷的錯誤資訊放在errors物件中。 第二步:在控制層(controller)中註冊並使用第一步建立的驗證類。(所執行的方法引數中必須包括@Validated和BindingResult,並且順序為以前以後,處於相鄰的位置,如果位置顛倒或者沒有緊靠,會發生異常)

@Controller
public class UserController {

    @InitBinder
    public void initBinder(DataBinder dataBinder){
        dataBinder.replaceValidators(new UserValidator());
    }

    @RequestMapping("login.mvc")
    public String test(@Validated @ModelAttribute("user") User user, BindingResult br){
        if(br.hasErrors()){
            System.out.println("有錯");
        }
        return "index";
    }
}

第三步:前端頁面顯示 當想要在前端頁面顯示錯誤資訊的時候,提交表單必須使用sf:form表單,併為其新增modelAttribute屬性(在控制層中定義的)

<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %>



<sf:form action="login.mvc" method="post" modelAttribute="user">
        username:<input title="username" type="text" autocomplete="off" name="username"><br><br>
        password:<input title="password" type="password" name="password">
        <sf:errors path="password"/>
        <br>
        <input type="submit">
    </sf:form>

以上便是Spring的驗證框架的驗證以及顯示的全過程,如有錯誤,請指出,謝謝