Struts2的验证框架
来源:互联网 发布:中轴线北京徒步知乎 编辑:程序博客网 时间:2024/05/07 04:02
最近在研究Struts2的验证框架,写写它的实现步骤,对大家进一步了解Struts2的验证有一定的帮助。
为什么要验证框架
- 用户无需编码,在外部配置文件中指定某个字段的验证类型,并提供出错信息即可
- 使用验证框架可以减轻开发者负担,提高开发效率
下面通过一个实例来说明:
先看需求:完成一个注册页面的验证,需求如下:
- 用户名:不能为空,长度在6和10之间
- 密码:不能为空,密码长度>=6
- 确认密码:必须和密码相同
- 电话:不能为空,符合电话号码格式
- 用户姓名:不能为空,长度在2和4之间
第一步:创建RegisterAction
public class RegisterAction extends ActionSupport {private User user; // 用户信息private String repassword; // 确认密码private UserBiz userBiz = new UserBizImpl();public User getUser() {return user;}public void setUser(User user) {this.user = user;}public String getRepassword() {return repassword;}public void setRepassword(String repassword) {this.repassword = repassword;}// 验证方法public void validateExecute() {if (!userBiz.validate(user.getName().trim())) {addFieldError("user.name", "用户名存在");}}// 注册方法public String execute() {if (!userBiz.register(user)) {this.addFieldError("user.name", "注册失败");return INPUT;}return SUCCESS;}}
第二步:在struts.xml中配置action
通过“input”指定验证错误时需返回的页面
<!-- 用户注册 --><action name="register" class="cn.jbit.houserent.action.RegisterAction"><result name="input">/page/register.jsp</result><result>/page/success.jsp</result></action>
第三步:创建注册页面register.jsp
注意:当使用s标签的时候,出错信息会自动显示在相应的验证表单项后
<s:form action="register"><s:textfield name="user.name" label="用户名" /><s:password name="user.password" label="密码" /><s:password name="repassword" label="确认密码" /><s:textfield name="user.telephone" label="电话" /><s:textfield name="user.username" label="用户姓名" /><s:submit value="立即注册"></s:submit></s:form>
第四步:创建验证文件
要和验证的Action放在同一个包下
命名ClassName-validation.xml或ClassName-alias-validation.xml,其中ClassName表示Action类名,而alias表示在struts.xml中配置Action的名字。后者用于Action中有多个业务方法时
<?xml version="1.0" encoding="UTF-8"?><!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="user.name"><field-validator type="requiredstring"><param name="trim">true</param><message>用户名不能为空</message></field-validator></field><field name="user.password"><field-validator type="requiredstring"><param name="trim">true</param><message>密码不能为空</message></field-validator><field-validator type="stringlength"><param name="minLength">6</param><param name="maxLength">10</param><message>密码长度须在${minLength}和${maxLength}之间</message></field-validator></field><field name="repassword"><field-validator type="fieldexpression"><param name="expression">user.password==repassword</param><message>密码和确认密码必须相同</message></field-validator></field><field name="user.telephone"><field-validator type="requiredstring"><message>电话号码不能为空</message></field-validator><field-validator type="regex"><param name="expression">^(\d{3,4}-)+(\d{7,8})$</param><message>电话号码格式不正确</message></field-validator></field></validators>
第五步:使用验证框架编写验证规则
验证文档里的<field-validator type="">中的type类型要和User中的属性类型一致,否则会报类型转换错误
field-validator的type的取值:
int 整数;
double 实数;
date 日期;
expression 两数的关系比较;
email Email地址;
url web地址;
regex 正则表达式验证;
conversion 转换;
required 是否为空;
requiredstring 必须字符;
stringlength 输入字符长度限制;
通过以上的步骤之后,就可以实现Struts2的验证功能。
- struts2的验证框架
- struts2的框架验证
- struts2 的验证框架
- Struts2的验证框架
- struts2的验证框架
- struts2的框架验证 .
- struts2的验证框架
- Struts2 验证框架的应用
- struts2的验证框架不起作用
- struts2的Validator验证框架
- Struts2验证框架的命名
- 基于Struts2验证框架的输入验证
- Struts2服务器端的验证(验证框架)
- Struts2使用validator验证框架的问题
- 自定义struts2验证框架的错误信息样式
- struts2验证框架中的常见的注解
- Struts2验证框架的使用和扩展
- Struts2的国际化和验证框架
- C++总是能让我想起什么(1)——类中静态变量使用
- 2011-7-24-20-42
- 配置cisco设备记录用户命令
- Spring的静态代理和动态代理
- 网络安全态势定义
- Struts2的验证框架
- Android Google Maps开发小知识
- uboot源码阅读(五)大佬的训导 uboot引导内核启动
- Linux中的sed命令
- Titanium教程day2-自定义可重用UI组件
- 我用过的几个CMS比较
- android binder机制之--(我是Server Porxy)
- Oracle DBA之手动地通过命令行的方式创建一个数据库
- ubuntu 搭建 sdl+ffmpeg