为什么我的validate不进行校验?
cncba 2005-05-17 01:35:51 struts-config.xml
======================
<?xml version="1.0" encoding="iso-8859-1"?>
<!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>
<form-beans>
<!--
<form-bean name="userLogonFormBean" type="bean.userLogonFormBean" />
-->
<form-bean name="userLogonFormBean" type="org.apache.struts.validator.DynaValidatorForm" >
<form-property
name="username"
type="java.lang.String"/>
<form-property
name="password"
type="java.lang.String"/>
</form-bean>
</form-beans>
<global-forwards>
<forward name="logon" path="/userAction.do?action=logon"/>
<forward name="logoff" path="/userLogoff.do"/>
</global-forwards>
<action-mappings>
<action
type="mystruts.userAction"
scope="request"
path="/userAction"
>
<forward name="test" path="/pages/test.jsp" />
<forward name="welcome" path="/pages/welcome.jsp" />
<forward name="logon" path="/pages/logon.jsp" />
</action>
<action
type="mystruts.userLogonAction"
name="userLogonFormBean"
scope="request"
validate="true"
path="/userLogonAction"
input="/pages/logon.jsp"
>
<forward name="logon" path="/pages/logon.jsp"/>
<forward name="success" path="/pages/welcome.jsp"/>
</action>
</action-mappings>
<message-resources parameter="resources.application"/>
<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>
application.properties
=================================
errors.required={0} is required.
errors.minlength={0} cannot be less than {1} characters.
errors.maxlength={0} cannot 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 not a valid credit card number.
errors.email={0} is an invalid email address
userLogon.username.notfind=user not found!
userLogon.password.wrong=password is wrong!
userLogonAction.java
=================================
package mystruts;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionError;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.validator.DynaValidatorForm;
import org.apache.struts.validator.FieldChecks;
import bean.*;
import constant.*;
public class userLogonAction extends Action
{
public ActionForward execute(
ActionMapping map,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response
)
throws IOException,ServletException
{
// userLogonFormBean logonform=(userLogonFormBean)form;
DynaValidatorForm logonform=(DynaValidatorForm)form;
userInfo user=new userInfo(Constant.USER_PROPERTIES);
ActionErrors errors=new ActionErrors();
// try{
// String username=logonform.getUsername();
// String password=logonform.getPassword();
String username=(String)logonform.get("username");
String password=(String)logonform.get("password");
int logonMsg=user.checkUser(username,password);
if (logonMsg!=user.USER_ISOK)
{
if (logonMsg==user.USER_NOTFOUND)
{
errors.add(ActionErrors.GLOBAL_ERROR,new ActionError("userLogon.username.notfind"));
}
if (logonMsg==user.USER_WRONG_PASSWORD)
{
errors.add(ActionErrors.GLOBAL_ERROR,new ActionError("userLogon.password.wrong"));
}
this.saveErrors(request,errors);
return map.findForward("logon");
}
else
{
HttpSession session=request.getSession();
session.setAttribute("user",form);
return map.findForward("success");
}
// }
// catch(Exception e)
// {
// throw Exception;
// }
//
}
}
pages/logon.jsp
====================================
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-bean" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html" prefix="html" %>
<HTML>
<HEAD>
<TITLE></TITLE><!--bean:message key="logon.jsp.title"/-->
<html:base/>
</HEAD>
<BODY>
<h3></h3><!--bean:message key="logon.jsp.page.heading"/-->
<html:errors/>
<html:form action="/userLogonAction.do" focus="username">
<TABLE border="0" width="100%">
<TR>
<TH align="right">username:</TH><!--bean:message key="logon.jsp.prompt.username"/-->
<TD align="left"><html:text property="username"/></TD>
</TR>
<TR>
<TH align="right">password:</TH><!--bean:message key="logon.jsp.prompt.password"/-->
<TD align="left"><html:password property="password"/></TD>
</TR>
<TR>
<TD align="right">
<html:submit>ok</html:submit><!--bean:message key="logon.jsp.prompt.submit"/-->
</TD>
<TD align="left">
<html:reset>reset</html:reset><!--bean:message key="logon.jsp.prompt.reset"/-->
</TD>
</TR>
</TABLE>
</html:form>
</BODY>
</HTML>
FORM可以正常使用,就是不进行校验。logs里记录:
2005-5-17 13:32:31 org.apache.struts.validator.DynaValidatorForm validate
严重: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest)
org.apache.commons.validator.ValidatorException: org.apache.struts.validator.FieldChecks.validateRequired(java.lang.Object, org.apache.commons.validator.ValidatorAction, org.apache.commons.validator.Field, org.apache.struts.action.ActionErrors, javax.servlet.http.HttpServletRequest)
at org.apache.commons.validator.ValidatorAction.loadValidationMethod(ValidatorAction.java:627)
at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:557)
at org.apache.commons.validator.Field.validateForRule(Field.java:811)
at org.apache.commons.validator.Field.validate(Field.java:890)
at org.apache.commons.validator.Form.validate(Form.java:174)
at org.apache.commons.validator.Validator.validate(Validator.java:367)
at org.apache.struts.validator.DynaValidatorForm.validate(DynaValidatorForm.java:110)
at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:919)
....
...
..
这是为什么啊?哪们大侠帮帮我?两天了,我吃下饭睡不着觉。
白头发都长出来了。