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>
本文介绍Struts2框架中的输入校验功能,包括通过XML配置文件实现校验的方法及具体示例。展示了如何对用户名、密码等字段进行长度、格式的有效性检查。
181

被折叠的 条评论
为什么被折叠?



