Struts1中validator为什么不起作用?
我用的是Eclipse 3.2、MyEclipse 5.0
自动生成的struts.jar、commons-validator.jar、jakarta-oro.jar
自动生成的validator-rules.xml,里面用的是validator_1_1_3.dtd
我自己写了个validation.xml,也用用的是validator_1_1_3.dtd
查看过这两个帖子:http://topic.csdn.net/t/20060508/09/4735225.html、http://hi.baidu.com/luxiaoyi/blog/item/e302f0132463b0065aaf5384.html
不清楚为什么会不生效(就是我在表单中不输入任何值,然后submit,它就直接转到成功页面去了),是不是也是因为jar包不匹配?但是这些jar包是由Eclipse自动一起生成的啊。。。
具体代码如下:
======================================================================
struts-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans >
<form-bean name="userRegistrationForm" type="struts.form.UserRegistrationForm"/>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings >
<action
attribute="user"
input="/userRegistration.jsp"
name="userRegistrationForm"
path="/userRegistration"
scope="request"
validate="true"
type="struts.action.UserRegistrationAction" >
<forward name="success" path="/regSuccess.jsp" />
</action>
</action-mappings>
<message-resources parameter="struts.ApplicationResources" />
<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>
======================================================================
UserRegistrationForm.java:
package struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.validator.ValidatorForm;
public class UserRegistrationForm extends ValidatorForm
{
private String username;
private String password;
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request)
{
// TODO Auto-generated method stub
return null;
}
public void reset(ActionMapping mapping, HttpServletRequest request)
{
// TODO Auto-generated method stub
}
}
======================================================================
userRegistration.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ 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 UserRegistrationForm form</title>
</head>
<body>
<html:form action="/userRegistration">
<html:errors/><br/>
name : <html:text property="username"/><br/>
password : <html:password property="password"/><br/>
<html:submit/><html:cancel/>
</html:form>
</body>
</html>
======================================================================
UserRegistrationAction.java:
package struts.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 struts.form.UserRegistrationForm;
public class UserRegistrationAction extends Action
{
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
{
UserRegistrationForm userRegistrationForm = (UserRegistrationForm)form;
return mapping.findForward("success");
}
}
======================================================================
regSuccess.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>My JSP 'regSuccess.jsp' starting page</title>
</head>
<body>
Success. <br>
</body>
</html>
======================================================================
validation.xml:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>
<global>
</global>
<formset>
<form name="userRegistrationForm">
<field
property="username" depends="required">
<arg key="logonForm.username"/>
</field>
<field
property="password" depends="required,mask">
<arg key="logonForm.password"/>
<var>
<var-name>mask</var-name>
<var-value>^[0-9a-zA-Z]*$</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
======================================================================
validator-rules.xml:
<!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">
......
======================================================================