struts2详解---->输入校验

struts2详解---->输入校验

      在struts2中,我们可以显示对action的所有方法进行校验或者对action的制定方法进行校验。

    对于输入校验struts2提供了两种实现方法:
       
1、采用手工编写代码实现。
        2、基于XML配置方式实现。

     使用基于XML配置方式实现输入校验时,Action也需要继承ActionSupport ,并且提供校验文件 校验文件和action类放在同一个包下 ,文件的取名格式 为:ActionClassName-

validation.xml,其中ActionClassName为action的简单类名,-validation为固定写法。 如果 Action类为cn.csdn.action.UserAction,那么该文件的取名就为:UserAction-

validation.xml.

 

<field> 制定action中要校验的属性,<field-validator> 制定校验器,上面制定的校验器

requiredstring是由系统提供的,系统提供了能满足大部分验证需求的校验器,这些校验器的 定义可以在xwork-2.x.jar中的com.opensmphony.xwork2.validator.validators下的

default.xml中找到。<message> 为校验失败后的提示信息,如果需要国际化,可以为message制定key属性,key的值为资源文件中的key.

 

在这个校验文件中,对action中字符窜类型的username属性进行验证,首先要求调用trim()方法去掉空格,然后判断用户是否为空。

 

下面做一个简单的案例:

 

UserAction.java

 

package cn.csdn.struts2.action;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport {

	/**
	 * @author z_xiaofei168
	 */
	private static final long serialVersionUID = 1L;

	private String name;
	private String pass;
	private String cpass;
	private String email;
	private int age;
	private String phone;

	//以下省略所有属性的set和get方法
}

 

  UserAction-validation.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="name">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>用户名不能为空</message>
		</field-validator>

		<field-validator type="stringlength">
			<param name="maxLength">12</param>
			<param name="minLength">6</param>
			<param name="trim">true</param>
			<message>用户名长度必须是6~12</message>
		</field-validator>
	</field>
	<field name="pass">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>用户密码不能为空</message>
		</field-validator>

		<field-validator type="stringlength">
			<param name="maxLength">16</param>
			<param name="minLength">6</param>
			<param name="trim">true</param>
			<message>用户密码长度必须是6~16</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="age">
		<field-validator type="requiredstring">
			<param name="trim">true</param>
			<message>用户年龄不能为空</message>
		</field-validator>

		<field-validator type="int">
			<param name="max">120</param>
			<param name="min">1</param>
			<message>用户年龄必须位于1-120之间</message>
		</field-validator>
	</field>
	
	<field name="phone">
	   <!-- 正则表达式 -->
		<field-validator type="regex">
			<param name="expression"><![CDATA[^1[358]\d{9}$]]></param>
			<message>手机号格式不正确!</message>
		</field-validator>
	</field>
</validators>

 

  struts2.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
	"http://struts.apache.org/dtds/struts-2.1.7.dtd">
<struts>
	<package name="csdn" extends="struts-default" namespace="/csdn">
		<global-results>
			<result name="input">/index.jsp</result>
		</global-results>

		<action name="register" class="cn.csdn.struts2.action.UserAction"
			method="reg">
			<result name="success">/sc.jsp</result>
		</action>
	</package>
</struts>
 

   index.jsp

 

 

<body>
       <div align="center">
         <h1>用户注册</h1>
         <div>
           <!-- 显示用户验证错误信息的输出呢 -->
           <s:fielderror></s:fielderror>
           
         </div>
         <div>
         <form action="csdn/register.action" method="post">
            <table border="2px">
              <tbody>
                 <tr><td>用户名</td><td><input type="text" name="name"/></td></tr>
                 <tr><td>密码</td><td><input type="password" 

name="pass"/></td></tr>
                 <tr><td>确认密码</td><td><input type="password" 

name="cpass"/></td></tr>
                 <tr><td>邮箱</td><td><input type="text" name="email"/></td></tr>
                 <tr><td>年龄</td><td><input type="text" name="age" 

value="1"/></td></tr>
                 <tr><td>电话</td><td><input type="text" name="phone"/></td></tr>
                 <tr><td></td><td><input type="submit" value="注册"/></td></tr>
              </tbody>
            </table>
        </form>
        
         </div>       
       </div>
  </body>
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值