<validators>
<field name="username">
<field-validator type="requiredstring">
<message key="requiredstring"/>
</field-validator>
</field>
<field name="password">
<field-validator type="requiredstring">
<message key="requiredstring"/>
</field-validator>
</field>
</validators>
當(dāng)驗(yàn)證未通過時,將不會進(jìn)入Login Action中的execute方法,此時可刪除掉Login這個Action中的驗(yàn)證內(nèi)容,該類的execute方法直接跳轉(zhuǎn)到SUCCESS即可,修改后的代碼略。
4)本地化輸出——資源文件package.properties
為了本地化的輸出驗(yàn)證錯誤信息,我們可以將參數(shù)信息和錯誤信息放入資源文件中,資源文件package.properties位于src/example目錄下,內(nèi)容如下:
requiredstring = ${getText(fieldName)}不能為空.
password = 密碼
username = 用戶名
Missing.message = 該部分尚未構(gòu)建,請稍候訪問...
在src/example目下下建立對應(yīng)的中文資源文件package_zh_CN.properties,為了避免中文亂碼問題,我們編寫一個批處理文件code.bat來對package.properties進(jìn)行編碼處理,主要用到native2ascii命令,其內(nèi)容如下:
del package_zh_CN.properties
copy package.properties package_zh_CN.properties.gbk
native2ascii -encoding GBK package_zh_CN.properties.gbk package_zh_CN.properties
del package_zh_CN.properties.gbk
del *.bak
運(yùn)行該批處理文件,可在package_zh_CN.properties中可看到編碼后的資源文件信息,如下:
requiredstring = ${getText(fieldName)}\u4e0d\u80fd\u4e3a\u7a7a.
password = \u5bc6\u7801
username = \u7528\u6237\u540d
Missing.message = \u8be5\u90e8\u5206\u5c1a\u672a\u6784\u5efa\uff0c\u8bf7\u7a0d\u5019\u8bbf\u95ee...
5)Register.jsp和Missing.jsp的編寫
在2中的example.xml中,我們配置了通配符映射,在Welcome.jsp中,我們使用
<a href="<s:url action="Register"/>">注冊</a>
其中的Register在example中找不到相關(guān)映射,于是在用戶點(diǎn)擊“注冊”按鈕時,將映射到通配符所映射的Action:example. ExampleSupport.而后跳轉(zhuǎn)到Register.jsp頁面,其代碼如下:
<%@ page contentType="text/html; charset=UTF-8"
%>
<%@ taglib prefix="s" uri="/struts-tags"
%>
<s:include value="Missing.jsp"/>
該頁面包含Missing.jsp頁面,其代碼如下:
<%@ page contentType="text/html; charset=UTF-8"
%>
<%@ taglib prefix="s" uri="/struts-tags"
%>
<html>
<head><title>未構(gòu)建頁面</title></head>
<body>
<p>
<!-- 讀取配置文件中的對應(yīng)信息. -->
<s:text name="Missing.message"/>
</p>
</body>
</html>
四. 總結(jié)
到此為止,我們的實(shí)例已構(gòu)建完,可通過瀏覽器訪問:
http://localhost:8080/struts2-blank-2.0.8/example/Welcome.jsp看到我們的勞動成果。下面總結(jié)一下我們在該實(shí)例中學(xué)到的東西。
常用的一些標(biāo)簽的使用
在本實(shí)例中,我們學(xué)習(xí)了<s:textfield>、<s:password>、<s:form>以及<s:url>的使用。
表單數(shù)據(jù)的驗(yàn)證
本文描述了一個簡單的表單的數(shù)據(jù)非空驗(yàn)證。
3. 本地化輸出錯誤提示信息
在驗(yàn)證失敗時,用資源文件來輸出錯誤提示信息。
4.Strut2配置文件中通配符的使用
對于某些地址,我們可以使用在struts2的配置通配符來使其映射到某個Action中去。