验证框架(Struts)
来源:互联网 发布:matlab 2014a for mac 编辑:程序博客网 时间:2024/05/21 06:56
在Struts中提供了Validator框架以完成对于输入数据的验证功能。
Validator框架是随Struts一起提供的,所以要想启动验证框架,只需要在struts-config.xml文件中编写以下配置即可。
<plug-in className="org.apache.struts.validator.ValidatorPlugln"><set-property property="pathnames"value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /></plug-in>在此配置中,通过<plug-in>元素定义了一个Struts验证框架的支持类org.apache.struts.validator.ValidatorPlugln,之后设置了此类所需要的属性(pathnames),
此属性用于配置两个验证框架的支持文件,即validator-rules.xml和validation.xml,这两个文件都保存在WEB-INF文件夹中。
validator-rules.xml文件中定义的主要规则
例:定义了一个validation.xml文件,用于验证用户输入的ID、年龄、生日、email是否正确。
编写validation.xml文件---/WEB-INF/validation.xml
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.3.0//EN" "http://jakarta.apache.org/commons/dtds/validator_1_3_0.dtd"><form-validation><formset><form name="memberForm"><field property="mid"depends="maxlength,minlength,required"><var><var-name>maxlength</var-name><var-value>15</var-value></var><var><var-name>minlength</var-name><var-value>6</var-value></var><arg key="err.mid" resource="true" /><arg name="minlength" key="${var:minlength}"resource="false" position="1" /><arg name="minlength" key="${var:maxlength}"resource="false" position="2" /><arg name="maxlength" key="${var:minlength}"resource="false" position="1" /><arg name="maxlength" key="${var:maxlength}"resource="false" position="2" /></field><field property="age" depends="required,integer"><arg key="err.age" resource="true" /></field><field property="birthday" depends="required,date"><arg key="err.birthday" resource="true" /><var><var-name>datePatternStrict</var-name><var-value>yyyy-MM-dd</var-value></var></field><field property="email" depends="required,email"><arg key="err.email" resource="true" /></field></form></formset></form-validation>本配置通过<field>节点分别为mid、age、birthday和email4个属性进行了验证规则的配置,所有的属性都必须填写,而且在mid处设置了其长度范围为6~15位,age必须是数字,date通过datePatternStrict指定了一个验证的模板,email通过email格式的验证规则进行验证。在每一个<field>节点中都配置了一个<agr>元素,用于从资源文件(ApplicationResource.properties)中取出资源信息,例如,mid的<arg>如下:
<arg key="key.mid" resource="true" />
此配置中的两个属性介绍如下:
key:表示从ApplicationResource.properties文件中读取信息,并且通过资源文件中的占位符进行内容设置。
resource:为true表示使用资源文件。
编写ApplicationResource.properties文件
#用户IDerr.mid = \u7528\u6237ID#用户年龄err.age = \u7528\u6237\u5e74\u9f84#生日err.birthday = \u751f\u65e5#邮箱err.email = \u90ae\u7bb1#{0}不能为空!errors.required = {0}\u4e0d\u80fd\u4e3a\u7a7a\uff01#{0}必须是数字errors.integer = {0}\u5fc5\u987b\u662f\u6570\u5b57\uff01#{0}格式不正确!errors.date = {0}\u683c\u5f0f\u4e0d\u6b63\u786e\uff01#邮箱格式不正确errors.email = \u90ae\u7bb1\u683c\u5f0f\u4e0d\u6b63\u786e\uff01errors.minlength = \u7528\u6237ID\u7684\u8303\u56f4\u662f{0} ~ {1}\u957f\u5ea6errors.maxlength = \u7528\u6237ID\u7684\u8303\u56f4\u662f{0} ~ {1}\u957f\u5ea6
package org.lxh.struts.action;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction;import org.apache.struts.validator.DynaValidatorForm;public class MemberAction extends DispatchAction {public ActionForward insert(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {DynaValidatorForm memberForm = (DynaValidatorForm) form;// TODO Auto-generated method stubSystem.out.println("ID --> " + memberForm.getString("mid"));System.out.println("AGE --> " + memberForm.get("age"));System.out.println("BIRTHDAY --> " + memberForm.getString("birthday"));System.out.println("EMAIL --> " + memberForm.getString("email"));return null;}}
修改struts-config.xml文件,增加DynaValidatorForm的配置
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd"><struts-config><span style="white-space:pre"></span><form-beans><span style="white-space:pre"></span><form-bean name="memberForm"<span style="white-space:pre"></span>type="org.apache.struts.validator.DynaValidatorForm"><span style="white-space:pre"></span><form-property name="mid" type="java.lang.String"></form-property><span style="white-space:pre"></span><form-property name="age" type="java.lang.Integer"></form-property><span style="white-space:pre"></span><form-property name="birthday" type="java.lang.String"></form-property><span style="white-space:pre"></span><form-property name="email" type="java.lang.String"></form-property><span style="white-space:pre"></span></form-bean><span style="white-space:pre"></span></form-beans><span style="white-space:pre"></span><global-exceptions /><span style="white-space:pre"></span><global-forwards /><span style="white-space:pre"></span><action-mappings><span style="white-space:pre"></span><action attribute="memberForm" name="memberForm"<span style="white-space:pre"></span>parameter="status" path="/member" scope="request"<span style="white-space:pre"></span>type="org.lxh.struts.action.MemberAction" validate="true" /><span style="white-space:pre"></span></action-mappings><span style="white-space:pre"></span><message-resources parameter="org.lxh.struts.ApplicationResources" /><span style="white-space:pre"></span><plug-in className="org.apache.struts.validator.ValidatorPlugIn"><span style="white-space:pre"></span><set-property property="pathnames"<span style="white-space:pre"></span>value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" /><span style="white-space:pre"></span></plug-in></struts-config>
编写JSP文件,使用验证框架----member.jsp
<%@ page language="java" pageEncoding="GBK"%><%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%><%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%><%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%><%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%><html:html lang="true"><head><html:base /><title>hello.jsp</title></head><body><html:errors/><html:form action="member.do" method="post" onsubmit="return validateMemberForm(this)">ID:<html:text property="mid"/><br>年龄:<html:text property="age"/><br>生日:<html:text property="birthday"/><br>邮箱:<html:text property="email"/><br><html:hidden property="status" value="insert"/><html:submit value="提交"></html:submit><html:reset value="重置"></html:reset></html:form><html:javascript formName="memberForm"/></body></html:html>
0 0
- 验证框架(Struts)
- struts框架验证(4)
- Struts(13)验证框架
- Struts(13)验证框架
- Struts:validator验证框架详解(一)
- Struts:validator验证框架详解(二)
- Struts:Validator验证框架详解(三)
- (转)struts Validator验证框架实例
- Struts Validator验证框架
- struts验证框架
- struts验证框架
- Struts Validator验证框架
- Struts验证框架
- Struts验证框架
- Struts 验证框架实例
- struts validator验证框架
- Struts-Validator验证框架。
- struts验证框架开发
- 2014-7-8
- MyEclipse使用总结——MyEclipse10安装SVN插件
- 大数据究竟是什么?一篇文章让你认识并读懂大数据
- 【2014.07.06】
- 第六十九题(旋转数组中的最小元素)
- 验证框架(Struts)
- VC控件背景透明
- 第十九周工作周报
- Android中获取应用程序(包)的大小-----PackageManager的使用(二)
- 堆栈、栈帧与函数调用过程分析
- Eclipse—添加DTD文件实现XML的自动提示功能
- HI,新家
- CUDA编译结果与CPU结果不一致
- Sip基础三