Struts2學(xué)習(xí)筆記(6)-簡(jiǎn)單的數(shù)據(jù)校驗(yàn)
數(shù)據(jù)校驗(yàn)是在項(xiàng)目開(kāi)發(fā)中不可缺少的一部分,用戶(hù)登錄時(shí)、密碼驗(yàn)證時(shí)都需要,當(dāng)然要做的首先是獲得用戶(hù)輸入的內(nèi)容,然后對(duì)內(nèi)容進(jìn)行驗(yàn)證,一般都是從數(shù)據(jù)庫(kù)中讀出然后校驗(yàn),如果錯(cuò)誤則顯示提示信息,正確則進(jìn)入用戶(hù)主界面。
下面用一個(gè)簡(jiǎn)單小例子來(lái)說(shuō)明下步驟:
1、index的表單
pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<base href="<%=basePath %>"/>
<title>Insert title here</title>
</head>
<body>
<h1>演示</h1>
<form action="user/user!check" method="post">
姓名:<input type="text" name="user.name"></input>
<br/>
年齡:<input type="text" name="user.age"></input>
<br/>
<input type="submit" value="提交"/>
</form>
</body>
</html>
提交時(shí)會(huì)有兩個(gè)變量--user.name 和user.age傳到server,然后調(diào)用struts.xml文件配置中的對(duì)應(yīng)Action
2、struts.xml配置
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"
<struts>
<constant name="struts.devMode" value="true" />
<package name="front" namespace="/user" extends="struts-default">
<action name="user" class="com.myservice.web.UserAction">
<result>/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
很明顯-當(dāng)返回success時(shí)調(diào)用success.jsp,error則調(diào)用error.jsp
3、Action中的check方法內(nèi)容
System.out.println("name="+user.getName());
System.out.println("age="+user.getAge());
if(user.getName().equals("admin")&&user.getAge()==20){
return SUCCESS;
}else{
this.addFieldError("name", "name is error");
this.addFieldError("name", "name is too long");
return ERROR;
}
}
在這里我們調(diào)用了addFieldError方法
4、error.jsp頁(yè)面
pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" " <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h2>驗(yàn)證失敗</h2>
<s:property value="errors.name[0]"/>
<br>
<s:property value="errors.name[1]"/>
<s:debug></s:debug>
</body>
</html>
里面第三行是說(shuō)明的添加了struts2的標(biāo)簽庫(kù),并且以s開(kāi)頭。
而倒數(shù)第四行和第六行是重點(diǎn),errors.name[0]對(duì)應(yīng)的就是我們?cè)?中通過(guò)addFieldError方法,放入到name屬性中的name is error,errors.name[1]則很明顯是name is too long。倒數(shù)第三行是調(diào)試信息。
整個(gè)效果最后顯示為:

以上就是Struts2中簡(jiǎn)單的數(shù)據(jù)校驗(yàn)的全部?jī)?nèi)容,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java中hasNextInt判斷后無(wú)限循環(huán)輸出else項(xiàng)的解決方法
這篇文章主要介紹了java中hasNextInt判斷后無(wú)限循環(huán)輸出else項(xiàng)的解決方法的相關(guān)資料,需要的朋友可以參考下2016-10-10
基于Java SSM實(shí)現(xiàn)Excel數(shù)據(jù)批量導(dǎo)入
這篇文章主要為大家詳細(xì)介紹了基于Java SSM如何實(shí)現(xiàn)excel數(shù)據(jù)批量導(dǎo)入,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
java8新特性將List中按指定屬性排序過(guò)濾重復(fù)數(shù)據(jù)的方法
這篇文章主要介紹了java8新特性將List中按指定屬性排序過(guò)濾重復(fù)數(shù)據(jù)的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08
解決使用json-lib包實(shí)現(xiàn)xml轉(zhuǎn)json時(shí)空值被轉(zhuǎn)為空中括號(hào)的問(wèn)題
網(wǎng)上能查到的xml轉(zhuǎn)json的jar包大部分是net.sf.json-lib,但是JSON json =xmlSerializer.read(xml); 方法會(huì)出現(xiàn)將空值轉(zhuǎn)化為[]的問(wèn)題,下面為大家提供兩種解決方法2018-03-03
新手場(chǎng)景Java線程相關(guān)問(wèn)題及解決方案
這篇文章主要介紹了新手場(chǎng)景Java線程相關(guān)問(wèn)題及解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-07-07
使用MDC快速查詢(xún)應(yīng)用接口全部執(zhí)行日志
這篇文章主要為大家介紹了使用MDC快速查詢(xún)應(yīng)用接口全部執(zhí)行日志的方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
使用IDEA啟動(dòng)項(xiàng)目遇見(jiàn)ClassNotFoundException的解決方案
這篇文章主要介紹了使用IDEA啟動(dòng)項(xiàng)目遇見(jiàn)ClassNotFoundException的正確解決方案,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06

