關於SpringMVC驗證框架的使用過程
阿新 • • 發佈:2018-12-14
關於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的驗證框架的驗證以及顯示的全過程,如有錯誤,請指出,謝謝