1. 在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>
2. 配置ApplicationResource.properties(eclipse默认struts的根目录)
将validator-rules.xml中
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
errors.maxlength={0} can not be greater than {1} characters.
errors.invalid={0} is invalid.
errors.byte={0} must be a byte.
errors.short={0} must be a short.
errors.integer={0} must be an integer.
errors.long={0} must be a long.
errors.float={0} must be a float.
errors.double={0} must be a double.
errors.date={0} is not a date.
errors.range={0} is not in the range {1} through {2}.
errors.creditcard={0} is an invalid credit card number.
errors.email={0} is an invalid e-mail address.
的信息copy到ApplicationResource.properties资源文件中
3. 创建Form
继承于ValidatorForm,不用reset 和 validate方法
public class UserForm extends ValidatorForm {
private String uname;
private String upass;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUpass() {
return upass;
}
public void setUpass(String upass) {
this.upass = upass;
}
}
4. 设置struts-config.xml文件中的validate=false
5. 新建validation.xml文件,在validation.xml中配置验证信息
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE form-validation PUBLIC "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0.1//EN" "validator_1_0_1.dtd" >
<form-validation>
<formset>
<!-- name:属性对应struts-config.xml中FormBean的名字 -->
<form name="userForm">
<!-- field:要验证的字段,即属性,depends:依赖的验证规则 -->
<field property="uname" depends="required">
<!-- arg0:在资源文件中配置错误消息的{0}参数值-->
<!-- errors.uname是资源文件中的key -->
<arg0 key="errors.uname"/>
</field>
</form>
</formset>
</form-validation>
6. 实现客户端的 javascript 验证
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://jakarta.apache.org/struts/tags-html" prefix="html" %>
<html>
<head>
<title>My JSP 'index.jsp' starting page</title>
</head>
<body>
<html:form action="login" οnsubmit="return validateUserForm(this);">
用户名:<html:text property="uname"></html:text><br>
密 码:<html:text property="upass"></html:text><br>
<html:submit value="登录"></html:submit>
</html:form>
<html:javascript formName="userForm"/>
</body>
</html>
经测试OK