使用XML對Action方法進行校驗方式有兩種,一種是對Action的所有方法進行校驗,另一種是對Action指定方法進行校驗.
對Action的所有方法進行校驗:
步驟:
1.創建Action需要繼承ActionSupport
2.提供校驗的xml文件,該文件和action放在同一個包下
校驗文件的取名格式爲:PersonAction-validation.xml,其中PersonAction爲action的簡單類名,-valication爲固定寫法
示例:
Action:
public class PersonAction extends ActionSupport{
private String username;
private String mobile;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String update(){
ActionContext.getContext().put("message", "更新成功");
return "message";
}
public String save(){
ActionContext.getContext().put("message", "保存成功");
return "message";
}
}
校驗的xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.3//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.3.dtd">
<validators>
<field name="username">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>用戶名不能爲空!</message>
</field-validator>
</field>
<field name="mobile">
<field-validator type="requiredstring">
<message>手機號不能爲空!</message>
</field-validator>
<field-validator type="regex">
<param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
<message>手機號格式不正確!</message>
</field-validator>
</field>
</validators>
通過Struts2標籤庫打印校驗信息:
<%@ taglib uri="/struts-tags" prefix="s"%>
<s:fielderror/>
對Action指定方法進行校驗:
要對指定的Action方法進行校驗必須指明要校驗的方法,指明校驗的方法需要修改校驗的文件名稱,比如”PersonAction-manage_update-validation.xml“,
PersonAction爲要校驗的Action;
manage_update指定Action中校驗的方法如下struts.xml的 action name
validation爲規定名稱。
<struts>
<package name="person" namespace="/person" extends="struts-default">
<action name="manage_*" class="cn.itcast.action.PersonAction" method="{1}">
<result name="input">/index.jsp</result>
<result name="message">/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>