struts中使用validator进行简单表单验证
来源:互联网 发布:弱视软件 编辑:程序博客网 时间:2024/05/21 17:35
1.找到validator相关文件.
要点:找到validator核心文件:validation.xml,validator-rules.xml.
validator相关文件在已经下载的struts框架包中,以struts-1.2.9-bin.zip包为例,可以从struts-1.2.9-bin/webapps/struts-examples.war下找到validator-rules.xml文件,而validation.xml文件可以从struts-1.2.9-bin/webapps/struts-examples.war/WEB-INF/validator文件夹中找到。注意,struts-examples.war可以用winzip或者winrar解压或者打开,还有,validation.xml文件本意是需要我们自己创建的,所以不从例子包中找很难找到。
2.配置
将validation.xml,validator-rules.xml两个文件拷贝到项目中的WEB-INF文件夹下,在struts-config.xml文件中加入:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
注意上面代码要加到最后,也就是</struts-config>的上面,这样才符合dtd。
3.代码
这里提供一个小例子。
首先,建立一个frombean。注意,如果使用validator框架进行验证,所使用的frombean就不能够用ActionForm了,而要使用ValidatorForm,动态frombean也是一样,使用DynaValidatorForm.
frombean代码如下(格式不好请谅解,拷贝到eclipse后请使用ctrl+shift+f重新格式化代码):
************************************************************************
import org.apache.struts.validator.ValidatorForm;
/**
* MyEclipse Struts
* Creation date: 10-09-2007
*
* XDoclet definition:
* @struts.form name="testValidatorForm"
*/
public class TestValidatorForm extends ValidatorForm {
/*
* Generated Methods
*/
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
************************************************************************
b.创建action
我们的目的是配置好validator框架进行表单验证,所以action中不需要任何逻辑。
以下是action代码:
************************************************************************
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import cn.hxex.sample.struts.form.TestValidatorForm;
/**
* MyEclipse Struts
* Creation date: 10-09-2007
*
* XDoclet definition:
* @struts.action path="/v1" name="testValidatorForm" scope="request" validate="true"
*/
public class V1Action extends Action {
/*
* Generated Methods
*/
/**
* Method execute
* @param mapping
* @param form
* @param request
* @param response
* @return ActionForward
*/
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
TestValidatorForm testValidatorForm = (TestValidatorForm) form;// TODO Auto-generated method stub
return null;
}
}
************************************************************************
c.建立jsp文件
不多说了,越简单越好,记得加入<html:errors />,代码如下:
************************************************************************
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean"%>
<%@ taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html"%>
<html>
<head>
<title>JSP for UserForm form</title>
</head>
<body>
<html:form action="/v1">
<html:errors /><br/>
userName : <html:text property="userName"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
************************************************************************
表单中只有一个提交项:userName
d.配置struts-config.xml
d.1配置frombean:
<form-bean name="testValidatorForm" type="cn.hxex.sample.struts.form.TestValidatorForm" />
d.2配置action,记得将validate配置为"true"
<action
name="testValidatorForm"
path="/v1"
input="/testV1.jsp"
scope="request"
type="cn.hxex.sample.struts.action.V1Action"
validate="true"
/>
e.修改validation.xml中代码如下:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
<formset>
<form name="testValidatorForm">
<field property="userName" depends="required">
<arg0 key="testValidatorForm.userName"/>
</field>
</form>
</formset>
</form-validation>
其中的required是指不能为空,验证项还有很多,留为后话。
f.配置ApplicationResources.properties文件内容如下:
testValidatorForm.userName=用户名
errors.required={0}不能为空!
红色的testValidatorForm.userName和validation.xml中arg0的key值一致,下面的errors.required和validation.xml文件中的depends中的required保持一致,表示判空。如果为空,就会报errors.required等号后面的错误信息,其中的{0}表示validation.xml中的arg0,依此类推,以后的{1}表示validation.xml文件中的arg1.本例完整的错误信息是:用户名不能为空!
- struts中使用validator进行简单表单验证
- Struts中使用validator验证框架
- struts中使用token进行表单重复提交的验证
- strutsz中使用validator进行验证
- Spring中使用Validator进行数据验证
- struts中validator框架简单使用实例
- 在Struts中使用Validator框架按Action分类对数据进行验证
- 在Struts中使用Validator框架按Action分类对数据进行验证
- 在 SpringMVC 中对表单提交参数进行验证(使用 Bean Validator)
- 使用Struts提供的Validator框架进行验证(lp)
- struts中使用validator
- struts中使用validator
- Struts 中 Validator页面验证
- Struts 中 Validator页面验证
- struts中自定义validator验证
- 在struts中使用validator做页面验证
- 在struts中使用validator做页面验证
- 在Struts中使用Validator验证框架详解
- 分页的存储过程
- 地震后到学校放假C(EarthQuake 9)
- Sqlite内存数据库
- struts2.0的namaspace小结
- virtual function and abstract class
- struts中使用validator进行简单表单验证
- 使用Linux L2TP/IPsec VPN 服务器
- 常用数字正则表达式(转)
- 模态逻辑
- asp.net的前台引用后台变量
- 地震后到学校放假D(EarthQuake 10)
- TSKinData控件和MessageBox之间的微妙关系 -----Access Violation at address。。。
- oracle9i使用克隆方式创建数据库
- ASP.NET跨页面传值技巧