真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Spring自帶的校驗框架Validation怎么用

這篇文章主要介紹Spring自帶的校驗框架Validation怎么用,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

10年積累的成都網(wǎng)站建設(shè)、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先制作網(wǎng)站后付款的網(wǎng)站建設(shè)流程,更有始興免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1.首先來一個項目結(jié)構(gòu)圖以及所需jar包

Spring自帶的校驗框架Validation怎么用

Spring自帶的校驗框架Validation怎么用

可以看到,沒有添加除了日志和jstl相關(guān)的jar包外,沒有其他spring以外的第三方j(luò)ar包(即使用的是spring自帶的校驗框架)。

2.從前臺頁面開始,首先是接收用戶信息的表單loginForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>




測試validator接口驗證


登錄頁

登錄名:
密碼:

3.實體類User.java

public class User {
private String loginname;
private String password;
    //省略set和get方法…
}

4.控制器UserController.java 

@Controller
public class UserController {
//注入UserValidator對象
@Autowired
@Qualifier("userValidator")
private UserValidator userValidator;
@RequestMapping(value="/{formName}")
public String loginForm(
@PathVariable String formName,Model model){
User user = new User();
model.addAttribute("user", user);
// 動態(tài)跳轉(zhuǎn)頁面
return formName;
}
@RequestMapping(value="/login", method=RequestMethod.POST)
public String login(@ModelAttribute User user,Model model,Errors errors){
model.addAttribute("user", user);
//調(diào)用userValidator的驗證方法
userValidator.validate(user, errors);
//如果驗證不通過跳轉(zhuǎn)到loginForm視圖
if(errors.hasErrors()){
return "loginForm";
}
return "success"; 
}
}

5.校驗器UserValidator.java

//實現(xiàn)Spring的Validator接口
@Repository("userValidator")
public class UserValidator implements Validator{
//該校驗器能夠?qū)lazz類型的對象進(jìn)行校驗
public boolean supports(Class clazz) {
//User指定的class參數(shù)所表示的類或接口是否相同,或是否是其超類的超接口
return User.class.isAssignableFrom(clazz);
}
//對目標(biāo)類target進(jìn)行校驗,并將校驗錯誤記錄在errors中
public void validate(Object target, Errors errors) {
/**
*使用ValidationUtils中的一個靜態(tài)方法rejectIfEmpty()來對
*loginname屬性進(jìn)行校驗,假若‘loginname'屬性是null或者空字符
*串的話,就拒絕驗證通過。 
*/
ValidationUtils.rejectIfEmpty(errors, "loginname", null,"登錄名不能為空");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", null,"密碼不能為空");
User user = (User) target;
if(user.getLoginname().length() > 10){
//使用Errors的rejectValue方法驗證
errors.rejectValue("loginname", null, "用戶名不能超過10個字符");
}
if(user.getPassword() != null && !user.getPassword().equals("")
&& user.getPassword().length() <6){
errors.rejectValue("password", null, "密碼不能小于6位");
}
}
}

6.spring的配置文件和web.xml的配置文件略……

小結(jié):

第一遍敲這個代碼的時候,有著各種各樣的小問題出現(xiàn),比較多的就是 類所對應(yīng)的路徑要import對,因為不同的包中可能會有相同名字的類,而此時一不小心就會導(dǎo)錯了包,會給后面的編寫代碼帶來不必要的麻煩。昨天的時候就調(diào)試這個小小的demo就花了好久的時間,后來也沒再去管,然后今天有空了又重新敲了一遍代碼,發(fā)現(xiàn)沒有問題,直接一次就通過了,然后去對比昨天的代碼發(fā)現(xiàn),是我在第一遍敲代碼的時候把實體類的get和set方法的名字敲錯了(追溯起來的話是寫屬性的時候把屬性名敲錯了,然后get和set方法是自動生成的,后面去修改屬性時導(dǎo)致沒有將相應(yīng)的set和get方法改正),哎,,,還是太粗心

ok,然后就是啟動服務(wù)器運行程序…

Spring自帶的校驗框架Validation怎么用

Spring自帶的校驗框架Validation怎么用

以上是“Spring自帶的校驗框架Validation怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


本文題目:Spring自帶的校驗框架Validation怎么用
文章網(wǎng)址:http://weahome.cn/article/gchops.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部