struts2:字段校验和非字段校验代码示例

struts2:字段校验和非字段校验代码示例:

此段代码中分别对字符串、日期、整型、email进行数据校验;
Validation01Action.java
  [/size]

package org.validation.action;  
  
import java.util.Date;  
  
import com.opensymphony.xwork2.ActionSupport;  
  
public class Validation01Action extends ActionSupport {  
    private String name;  
    private String email;  
    private int age;  
    private Date date;  
    public String execute()throws Exception{  
        return SUCCESS;  
    }  
    public String getName() {  
        return name;  
    }  
    public void setName(String name) {  
        this.name = name;  
    }  
    public String getEmail() {  
        return email;  
    }  
    public void setEmail(String email) {  
        this.email = email;  
    }  
    public int getAge() {  
        return age;  
    }  
    public void setAge(int age) {  
        this.age = age;  
    }  
    public Date getDate() {  
        return date;  
    }  
    public void setDate(Date date) {  
        this.date = date;  
    }  
      
}  


1.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
<%@taglib prefix="s" uri="/struts-tags" %>  
  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
<html>  
  <head>  
  
    <title>My JSP '1.jsp' starting page</title>  
      
    <meta http-equiv="pragma" content="no-cache">  
    <meta http-equiv="cache-control" content="no-cache">  
    <meta http-equiv="expires" content="0">      
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
    <meta http-equiv="description" content="This is my page">  
    <!-- 
    <link rel="stylesheet" type="text/css" href="styles.css"> 
    -->  
  
  </head>  
    
  <body>  
    <s:fielderror></s:fielderror>  
    <s:form action="validator01">  
        <s:textfield name="name" label="姓名"></s:textfield>  
        <s:textfield name="email" label="邮箱"></s:textfield>  
        <s:textfield name="age" label="年龄"></s:textfield>  
        <s:textfield name="date" label="日期"></s:textfield>  
        <s:submit value="提交"></s:submit>  
    </s:form>  
  </body>  
</html>  


如果是以字段型校验器配置,则参考以下:
Validation01Action-validation.xml
(1)<field name="">为一个属性,name为Action属性名称;
(2)<field-validator type="">为配置一个校验器,type为校验器的类型;
(3)<param>为配置参数,比如最小值、最大值;
(4)<message>为错误信息,如果需要对错误提示信息进行国际化,则可以在全局国际化资源文件中配置,在校验规则文件中编写如下形式:<message key="key"/>,key为国际化资源文件的key即可;



<!DOCTYPE validators PUBLIC  
        "-//Apache Struts//XWork Validator 1.0.2//EN"  
        "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">  
  
<validators>  
    <field name="name">  
        <field-validator type="requiredstring">  
            <param name="trim">true</param>  
            <message>姓名不能为空</message>  
        </field-validator>  
        <field-validator type="regex">  
  
            <param name="expression"><![CDATA[(\w{4,10})]]></param>  
            <message>姓名要在4-10位之间</message>  
        </field-validator>  
    </field>  
    <field name="age">  
        <field-validator type="requiredstring">  
            <param name="trim">true</param>  
            <message>年龄不能为空</message>  
        </field-validator>  
        <field-validator type="int">  
            <param name="min">0</param>  
            <param name="max">200</param>  
            <message>年龄范围在0-200之间</message>  
        </field-validator>  
    </field>  
    <field name="email">  
        <field-validator type="requiredstring">  
            <param name="trim">true</param>  
            <message>邮箱不能为空</message>  
        </field-validator>  
        <field-validator type="email">  
  
            <message>邮箱格式不正确</message>  
        </field-validator>  
    </field>  
    <field name="date">  
        <field-validator type="requiredstring">  
            <param name="trim">true</param>  
            <message>日期不能为空</message>  
        </field-validator>  
        <field-validator type="date">  
            <param name="min">2010-01-01</param>  
            <param name="max">2010-12-31</param>  
            <message>日期在2010-01-01到2010-12-31之间</message>  
        </field-validator>  
    </field>    
</validators>
 

而如果采用非字段校验器,则
(1)<validator type="">表示一个校验器,type属性表示校验器的类型;
(2)<param name="fieldName"></param> 此元素是必要的,指定Action属性的名称;
(3)<message>表示错误信息;


<!DOCTYPE validators PUBLIC  
        "-//Apache Struts//XWork Validator 1.0.2//EN"  
        "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtd">  
  
<validators>  
    <validator type="requiredstring" short-circuit="true">  
        <param name="fieldName">name</param>  
        <param name="trim">true</param>  
        <message key="aa"></message>  
    </validator>  
    <validator type="requiredstring" short-circuit="true">  
        <param name="fieldName">age</param>  
        <param name="trim">true</param>  
        <message>年龄不能为空</message>  
    </validator>  
    <validator type="requiredstring" short-circuit="true">  
        <param name="fieldName">email</param>  
        <param name="trim">true</param>  
        <message>邮箱不能为空</message>  
    </validator>  
    <validator type="requiredstring" short-circuit="true">  
        <param name="fieldName">date</param>  
        <param name="trim">true</param>  
        <message>日期不能为空</message>  
    </validator>  
    <validator type="regex">  
        <param name="fieldName">name</param>  
        <param name="expression"><![CDATA[(\w{4,10})]]></param>  
        <message>姓名要在4-10位之间</message>  
    </validator>  
    <validator type="int">  
        <param name="fieldName">age</param>  
        <param name="min">0</param>  
        <param name="max">200</param>  
        <message>年龄范围在0-200之间</message>  
    </validator>  
    <validator type="email">  
        <param name="fieldName">email</param>  
        <message>邮箱格式不正确</message>  
    </validator>  
    <validator type="date">  
        <param name="fieldName">date</param>  
        <param name="min">2010-01-01</param>  
        <param name="max">2010-12-31</param>  
        <message>日期在2010-01-01到2010-12-31之间</message>  
    </validator>  
</validators>  
 

你可能感兴趣的:(struts2)