一. struts2表單驗證的兩種形式:
1.Aciton類重寫ActionSupport類的validate()方法:
public void validate(){
if(getUsername() == null || getUsername().trim().equals("")){
addFieldError("username", getText("username.required"));//getText("username.required")是調用國際化的
// addFieldError("username","直接寫錯誤信息");
}
}
struts2的<s:form />標籤默認具備輸出校驗錯誤的能力
2.用xml文件實現表單驗證
xml文件命名規則"Action類名-validation";例使用requiredsting校驗器實現LoginAction類的字段username非空驗證:在LoginAction.java同包中新建LoginAction-validation.xml文件,文件代碼如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<message key="username.required" /> // 這裏也是要用到 國際化的
<!-- <message key="直接寫錯誤信息" /> 這樣也是可以的-->
</field-validator>
</field>
</validators>
二. struts2的國際化實現:
1.配置資源文件
在src目錄下新建文件struts.properties及messageResource_zh_CN.properties(以實現中文爲例,若實現其他語言輸出,只需要新建其他資源文件以messageResource_語言_國家.properties命名)
struts.properties文件只包含一句話struts.custom.i18n.resources=messageResource
messageResource_zh_CN.properties文件只包含key value在內的名值對
例:
login.title=/u767b/u5f55/u9875/u9762
user.login=/u7528/u6237/u767b/u5f55
username=/u7528/u6237/u540d
password=/u5bc6/u7801
login=/u767b/u5f55
username.required=/u7528/u6237/u540d/u4e0d/u80fd/u4e3a/u7a7a
//可以使用native2ascii -encoding utf-8 *.properties *_zh_CN.properties 命令進行編碼轉換
// 如 native2ascii -encoding utf-8 login_cn.properties messageResource_zh_CN.properties 其中login_cn.properties是中文編碼的文件,這裏執行native2ascii -encoding utf-8命令就是把這個中文編碼的文件轉換成utf-8編碼的,messageResource_zh_CN.properties爲轉換的目標文件
2.實現
(1) Action類中的validate方法中添加國際化信息的方法:
action類的validate方法添加國際化信息:
public void validate(){
if(getUsername().trim() == null || getUsername().trim().equals("")){
addFieldError("username", getText("username.required"));
}
}
(2) xml驗證時添加國際化信息:(xml命名規則“類名-validation.xml”例 LoginAction-validation.xml)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<message key="username.required" />
</field-validator>
</field>
</validators>