欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學(xué)堂Java培訓(xùn)之Spring自帶校驗(yàn)框架Validation使用實(shí)例

2019-03-25 14:02:07 2556瀏覽

今天扣丁學(xué)堂Java培訓(xùn)老師給大家分享一篇關(guān)于Spring自帶的校驗(yàn)框架Validation的使用實(shí)例詳解,首先來一個(gè)項(xiàng)目結(jié)構(gòu)圖以及所需jar包吧。



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

2.從前臺(tái)頁(yè)面開始,首先是接收用戶信息的表單loginForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>測(cè)試validator接口驗(yàn)證</title>
</head>
<body>
<h3>登錄頁(yè)</h3>
<!-- 綁定user -->
<form:form modelAttribute="user" method="post" action="login">
<table>
<tr>
<td>登錄名:</td>
<td><form:input path="loginname"/></td>
<!-- 使用form:errors標(biāo)簽 顯示loginname屬性的錯(cuò)誤信息 -->
<td><form:errors path="loginname" cssStyle="color:red"/></td>
</tr>
<tr>
<td>密碼:</td>
<td><form:input path="password"/></td>
<!-- 使用form:errors標(biāo)簽 顯示password屬性的錯(cuò)誤信息 -->
<td><form:errors path="password" cssStyle="color:red"/></td>
</tr>
<tr>
<td><input type="submit"></td>
</tr>
</table>
</form:form>
</body>
</html>

3.實(shí)體類User.java

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

4.控制器UserController.java

@Controller
public class UserController {
//注入U(xiǎn)serValidator對(duì)象
@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);
// 動(dòng)態(tài)跳轉(zhuǎn)頁(yè)面
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的驗(yàn)證方法
userValidator.validate(user, errors);
//如果驗(yàn)證不通過跳轉(zhuǎn)到loginForm視圖
if(errors.hasErrors()){
return "loginForm";
}
return "success"; 
}
}

5.校驗(yàn)器UserValidator.java

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

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


以上就是關(guān)于扣丁學(xué)堂Java培訓(xùn)之Spring自帶校驗(yàn)框架Validation使用實(shí)例全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,想要了解更多關(guān)于Java開發(fā)方面內(nèi)容的小伙伴,請(qǐng)關(guān)注扣丁學(xué)堂Java培訓(xùn)官網(wǎng)、微信等平臺(tái),扣丁學(xué)堂IT職業(yè)在線學(xué)習(xí)教育平臺(tái)為您提供權(quán)威的Java開發(fā)環(huán)境搭建視頻,Java培訓(xùn)后的前景無限,行業(yè)薪資和未來的發(fā)展會(huì)越來越好的,扣丁學(xué)堂老師精心推出的Java視頻教程定能讓你快速掌握J(rèn)ava從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂Java技術(shù)交流群:670348138。


扣丁學(xué)堂微信公眾號(hào)                                 HTML5前端開發(fā)VIP免費(fèi)公開課

     【關(guān)注微信公眾號(hào)獲取更多學(xué)習(xí)資料】           【掃碼進(jìn)入HTML5前端開發(fā)VIP免費(fèi)公開課



查看更多關(guān)于“Java開發(fā)資訊”的相關(guān)文章>>

標(biāo)簽: Java培訓(xùn) Java視頻教程 Java多線程 Java面試題 Java學(xué)習(xí)視頻 Java開發(fā)

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國(guó)免費(fèi)咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權(quán)所有   北京市海淀區(qū)寶盛北里西區(qū)28號(hào)中關(guān)村智誠(chéng)科創(chuàng)大廈4層
京ICP備2021002079號(hào)-2   Copyright ? 2017 - 2022
返回頂部 返回頂部