Struts 2.0服务端基本验证

Struts 2.0服务端基本验证

简介

 

Struts 2的一个核心工程就是支持Validation(验证)。Struts 2支持包括正则表达式验证,数据类型支持的有conversiondatedoubleemailexpressionfieldexpressionintregexrequiredrequiredstringstringlengthurlvisitor

 

使用验证功能,需要在struts.xml中进行配置。同时Struts 2支持服务端和客户端验证。像Ajax验证。可以使用验证来达到检查空字段或是满足特殊要求的form表单的目的。很重要的一点是struts 2支持自定义验证。

 

实例

 

下面我将写一个实例形验证,验证要求:

Name:字符串长度最大不能超过50个字符。

Age:必须是1-120之间的整形。

Email:有效的email地址。

 

好了开始动手吧。

 

首先,写个action指向我们的创建新用户页面。

 

package validation.action;   

import com.opensymphony.xwork2.ActionSupport;   

public class CustomerNewAction extends ActionSupport {   

    public String execute(){   

        return SUCCESS;   

    }   

}   

  

 

 

 

下面是创建新用户的customer_new.jsp

 

<%@ taglib prefix="s" uri="/struts-tags" %>  

<html>  

<head>  

<s:head/>  

</head>  

<body>  

<s:form action="CustomerSaveAction">  

    <h2>Enter Customer Details</h2>  

    <s:textfield label="Name" name="name"></s:textfield>  

    <s:textfield label="Age" name="age"></s:textfield>  

    <s:textfield label="Email" name="email"></s:textfield>  

    <s:submit label="Save" name="Save"></s:submit>  

</s:form>  

</body>  

</html>  

  

 

 

 

页面效果如图

 

 

接下来是最重要的,在s:head标签中,这里是验证错误以后显示错误信息的样式。Form表单将数据提交到CustomerSaveAction中,此action将保存数据并重定向到customer_save_success.jsp用户创建成功页面。下面是action的代码:

 

 

package validation.action;   

import com.opensymphony.xwork2.ActionSupport;   

public class CustomerSaveAction extends ActionSupport {   

    private String name;   

    private int age;   

    private String email;   

    public String getName() {   
        return name;
    }   

    public void setName(String name) {  
        this.name = name;  
    }   

    public int getAge() {  
        return age; 
    }   

    public void setAge(int age) {   
        this.age = age;   
    }   

    public String getEmail() {  
        return email; 
    }   

    public void setEmail(String email) {  
        this.email = email;
    }   

    public String execute(){  
        return SUCCESS;  
    }   

}   

 Customer_save_success.jsp

 

 

 

 

<%@ taglib prefix="s" uri="/struts-tags" %>  

<html>
<head> </head>  
<body>
<h2>Customer information saved successfully</h2>
</body>
</html>  

  

 

 

现在的工作就是想CustomerSaveAction声明一个Validation。首先在CustomerSaveAction.java同一目录下创建一个CustomerSaveAction-validation.xml文件。

 

CustomerSaveAction-validation.xml

 

<!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="name">  

        <field-validator type="requiredstring">  

            <message>You must enter a value for Name</message>  

        </field-validator>  

        <field-validator type="stringlength">  

            <param name="maxLength">50</param>  

            <message>  

                Name cannot contain more than 50 characters   

            </message>  

        </field-validator>  

    </field>  

    <field name="age">  

        <field-validator type="int">  

            <param name="min">1</param>  

            <param name="max">120</param>  

            <message>Age must between 1 and 120</message>  

        </field-validator>  

    </field>  

    <field name="email">  

        <field-validator type="email">  

            <message>Please enter a valid email address</message>  

        </field-validator>  

    </field>  

</validators>  

  

 

 

最后一个步骤就是在struts.xml中组装。

Struts.xml

<?xml version="1.0" encoding="UTF-8" ?>  

<!DOCTYPE struts PUBLIC   

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   

    "http://struts.apache.org/dtds/struts-2.0.dtd">    

<struts>  

    <package name="validation" extends="struts-default">  

        <action name="CustomerNewAction"  

            class="validation.action.CustomerNewAction">  

            <result>/validation/customer_new.jsp</result>  

        </action>  

        <action name="CustomerSaveAction"  

            class="validation.action.CustomerSaveAction">  

            <result name="input">/validation/customer_new.jsp</result>  

            <result>/validation/customer_save_success.jsp</result>  

        </action>  

    </package>  

</struts>  

  

 

 

部署好以后,访问http://localhost:8080/struts_validation/CustomerNewAction.action,填入23dsfsdf32sdfdf23,显示结果

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值