【Struts2十】校验表达二:使用xml配置validator来校验表单
2015-07-16 10:33
573 查看
手动校验还是不大优雅,Struts2还提供了另外一种xml配置的方式校验表单!
在Action的同目录下添加一个xml文件,文件名严格限制为:Action类名-Action别名_方法名-validation.xml:
如:ValidateXMLAction-validateXMLAction_aaa-validation.xml
1.ValidateXMLAction:
2.需要校验的表单jsp:
validate_xml.jsp:
3.配置validator的xml文件
ValidateXMLAction-validateXMLAction_aaa-validation.xml:
4.上述xml文档中用到了自定义校验age的校验器,需要实现以下步骤才能正常使用:
(1).src根目录下新建一个validators.xml的文件:
(2).写一个AgeValidate的类:
5.struts-validate.xml
在Action的同目录下添加一个xml文件,文件名严格限制为:Action类名-Action别名_方法名-validation.xml:
如:ValidateXMLAction-validateXMLAction_aaa-validation.xml
1.ValidateXMLAction:
[align=left]public class ValidateXMLAction extends ActionSupport{[/align] [align=left] private String username;[/align] [align=left] private String password;[/align] [align=left] private Integer age;[/align] public Integer getAge() { [align=left] return age ;[/align] [align=left] }[/align] public void setAge(Integer age) { this.age = age; [align=left] }[/align] public String getUsername() { return username ; [align=left] }[/align] public void setUsername(String username) { this.username = username; [align=left] }[/align] public String getPassword() { [align=left] return password ;[/align] [align=left] }[/align] public void setPassword(String password) { this.password = password; [align=left] }[/align] [align=left] [/align] public String testValidate(){ [align=left] return "success" ;[/align] [align=left] }[/align] [align=left] [/align] public String aaa(){ [align=left] return "success" ;[/align] [align=left] }[/align] [align=left]}[/align] |
validate_xml.jsp:
[align=left]<%@ page language="java" import= "java.util.*" pageEncoding="UTF-8" %>[/align] [align=left]<%@ taglib uri="/struts-tags" prefix= "s"%>[/align] [align=left] [/align] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> [align=left]<html>[/align] [align=left] <head >[/align] [align=left] [/align] [align=left] </head >[/align] [align=left] [/align] [align=left] <body >[/align] [align=left] <s:fielderror ></s:fielderror>[/align] [align=left] <form action="validate/validateXMLAction_aaa.action" method="post" >[/align] [align=left] 用户名: <input type= "text" name ="username">< br>[/align] 密码: <input type= "text" name ="password">< br> [align=left] 年龄: <input type= "text" name ="age">< br>[/align] [align=left] <input type= "submit">[/align] [align=left] </form >[/align] [align=left] </body >[/align] [align=left]</html>[/align] |
ValidateXMLAction-validateXMLAction_aaa-validation.xml:
[align=left]<?xml version= "1.0" encoding ="UTF-8"?>[/align] [align=left]<!DOCTYPE validators PUBLIC[/align] "-//Apache Struts//XWork Validator 1.0.3//EN" [align=left] "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd" >[/align] [align=left]<validators>[/align] [align=left] <!--[/align] [align=left] 指明action中要校验的属性[/align] [align=left] -->[/align] [align=left] <field name="username">[/align] [align=left] <!--[/align] [align=left] field- validator指定校验器[/align] [align=left] type为校验规则[/align] [align=left] -->[/align] [align=left] <field-validator type= "requiredstring">[/align] [align=left] <param name= "trim">true</param >[/align] [align=left] <message><![CDATA[ 用户名不能为空 ]]></message>[/align] [align=left] </field-validator>[/align] [align=left] </field >[/align] [align=left] [/align] [align=left] <field name="password">[/align] [align=left] <field-validator type= "requiredstring">[/align] [align=left] <param name= "trim">true</param >[/align] [align=left] <message><![CDATA[ 密码不能为空]]></message >[/align] [align=left] </field-validator>[/align] [align=left] <field-validator type= "regex">[/align] [align=left] <param name= "trim">true</param >[/align] [align=left] <param name="expression" ><![CDATA[^[a-zA-Z0-9]{6,12}$]]></ param>[/align] [align=left] <message><![CDATA[ 密码长度应该在6到12之间 ]]></message>[/align] [align=left] </field-validator>[/align] [align=left] </field >[/align] [align=left] [/align] [align=left] <field name="age">[/align] [align=left] <!--[/align] [align=left] <field- validator type="int">[/align] [align=left] <param name="max">100 </param>[/align] [align=left] <param name=" min">1</param>[/align] [align=left] <param name="trim">true </param>[/align] [align=left] <message><![CDATA[年龄应该在1到100之间]]></message>[/align] [align=left] </field- validator>[/align] [align=left] -->[/align] <!-- 使用自定义的校验器 --> [align=left] <field-validator type= "age">[/align] [align=left] <message><![CDATA[ 年龄应该大于1]]></message >[/align] [align=left] </field-validator>[/align] [align=left] </field >[/align] [align=left]</validators>[/align] |
(1).src根目录下新建一个validators.xml的文件:
[align=left]<?xml version= "1.0" encoding ="UTF-8"?>[/align] [align=left]<!DOCTYPE validators PUBLIC[/align] "-//Apache Struts//XWork Validator Config 1.0//EN" [align=left] "http://struts.apache.org/dtds/xwork-validator-config-1.0.dtd" >[/align] [align=left] [/align] [align=left]<!-- START SNIPPET: validators-default -->[/align] [align=left]<validators>[/align] [align=left] <validator name="age" class="cn.itcast.struts2.action.validate.AgeValidate" ></validator>[/align] [align=left]</validators>[/align] |
[align=left]package cn.itcast.struts2.action.validate;[/align] [align=left] [/align] [align=left]import com.opensymphony.xwork2.validator.ValidationException;[/align] [align=left]import com.opensymphony.xwork2.validator.validators.FieldValidatorSupport;[/align] [align=left] [/align] [align=left]public class AgeValidate extends FieldValidatorSupport{[/align] public void validate(Object object) throws ValidationException { [align=left] System. out.println("错误信息:" +this.getMessage(object));[/align] [align=left] String fieldName = this.getFieldName();[/align] [align=left] System. out.println("字段名称:" +fieldName);[/align] Object o = this.getFieldValue(fieldName, object); [align=left] [/align] [align=left] if(o instanceof java.lang.Integer){[/align] [align=left] Integer len = (Integer)o;[/align] [align=left] if(len<1){[/align] this.addFieldError(fieldName, object); [align=left] }[/align] [align=left] }[/align] [align=left] }[/align] [align=left] [/align] [align=left]}[/align] |
[align=left]<?xml version= "1.0" encoding ="UTF-8"?>[/align] [align=left]<!DOCTYPE struts PUBLIC[/align] "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" [align=left] "http://struts.apache.org/dtds/struts-2.3.dtd" >[/align] [align=left]<struts>[/align] [align=left] <package name="validate" namespace="/validate" extends="struts-default" >[/align] [align=left] [/align] [align=left] <action name= "validateXMLAction_*" method ="{1}" class="cn.itcast.struts2.action.validate.ValidateXMLAction" >[/align] [align=left] <result name="input" >/validate/validate_xml.jsp </result>[/align] [align=left] <result name="success" >/validate/success.jsp </result>[/align] [align=left] </action>[/align] [align=left] </package >[/align] [align=left]</struts>[/align] |
相关文章推荐
- JQuery+Strusts1.x无刷新登录
- 插件管理框架 for Delphi(一)
- 使用CSS框架布局的缺点和优点小结
- 列举PHP的Yii 2框架的开发优势
- Windows窗体的.Net框架绘图技术实现方法
- 浅谈JavaScript 框架分类
- JS刷新框架外页面七种实现代码
- 超赞的动手创建JavaScript框架的详细教程
- asp.net4.0框架下验证机制失效的原因及处理办法
- struts2 jquery 打造无限层次的树
- 插件管理框架 for Delphi(二)
- 零基础学习AJAX之AJAX框架
- Ajax 框架学习笔记
- ajax交互Struts2的action(客户端/服务器端)
- Flex中最好的MVC框架Mate框架
- java struts常见错误以及原因分析
- JavaScript 异步调用框架 (Part 4 - 链式调用)
- JavaScript 异步调用框架 (Part 2 - 用例设计)
- struts2 spring整合fieldError问题
- Struts2的s:radio标签使用及用jquery添加change事件