使用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>