首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2详解->输入校验

2012-09-07 
struts2详解----输入校验struts2详解----输入校验????? 在struts2中,我们可以显示对action的所有方法进

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" name="code"><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>
?

热点排行