Struts2學(xué)習(xí)筆記(6)-簡單的數(shù)據(jù)校驗
數(shù)據(jù)校驗是在項目開發(fā)中不可缺少的一部分,用戶登錄時、密碼驗證時都需要,當(dāng)然要做的首先是獲得用戶輸入的內(nèi)容,然后對內(nèi)容進(jìn)行驗證,一般都是從數(shù)據(jù)庫中讀出然后校驗,如果錯誤則顯示提示信息,正確則進(jìn)入用戶主界面。
下面用一個簡單小例子來說明下步驟:
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>
提交時會有兩個變量--user.name 和user.age傳到server,然后調(diào)用struts.xml文件配置中的對應(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時調(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頁面
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>驗證失敗</h2>
<s:property value="errors.name[0]"/>
<br>
<s:property value="errors.name[1]"/>
<s:debug></s:debug>
</body>
</html>
里面第三行是說明的添加了struts2的標(biāo)簽庫,并且以s開頭。
而倒數(shù)第四行和第六行是重點,errors.name[0]對應(yīng)的就是我們在3中通過addFieldError方法,放入到name屬性中的name is error,errors.name[1]則很明顯是name is too long。倒數(shù)第三行是調(diào)試信息。
整個效果最后顯示為:
以上就是Struts2中簡單的數(shù)據(jù)校驗的全部內(nèi)容,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MyBatisPlus自定義JsonTypeHandler實現(xiàn)自動轉(zhuǎn)化JSON問題
這篇文章主要介紹了MyBatisPlus自定義JsonTypeHandler實現(xiàn)自動轉(zhuǎn)化JSON問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12java操作mongodb之多表聯(lián)查的實現(xiàn)($lookup)
這篇文章主要介紹了java操作mongodb之多表聯(lián)查的實現(xiàn)($lookup),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03SpringBoot URL帶有特殊字符([]/{}等),報400錯誤的解決
這篇文章主要介紹了SpringBoot URL帶有特殊字符([]/{}等),報400錯誤的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02詳解Java執(zhí)行g(shù)roovy腳本的兩種方式
這篇文章主要介紹了Java執(zhí)行g(shù)roovy腳本的兩種方式,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04Spring?BeanFactory?與?FactoryBean?的區(qū)別詳情
這篇文章主要介紹了Spring?BeanFactory?與?FactoryBean?的區(qū)別詳情,BeanFactory?和?FactoryBean?的區(qū)別卻是一個很重要的知識點,在本文中將結(jié)合源碼進(jìn)行分析講解,需要的小伙伴可以參考一下2022-05-05springboot集成開發(fā)實現(xiàn)商場秒殺功能
這篇文章主要介紹了springboot集成實現(xiàn)商品秒殺功能,秒殺系統(tǒng)業(yè)務(wù)流程,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12