struts的validator怎么就不行呢?到底是哪里不对了????

nivaini 2005-02-27 10:59:49
login.jsp
<%@ page contentType="text/html; charset=GBK" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<html:html>
<head>
<title>
login
</title>

</head>
<body bgcolor="#ffffff">
<html:errors />
<html:form method="POST" action="login.do" >
<html:text property="userName" size="16" maxlength="16"/>
<html:text property="password" size="16" maxlength="16"/>
<html:submit property="submit" value="Submit" />

</html:form>
<html:javascript formName="loginForm"/>
</body>
</html:html>




struts-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">
<form-property name="userName" size="16" type="java.lang.String" />
<form-property name="password" size="16" type="java.lang.String" />
</form-bean>
</form-beans>
<action-mappings>
<action input="login.jsp" name="loginForm" path="/login" scope="request" type="test2.Login" validate="true">
<forward name="success" path="/success.html" />
</action>
</action-mappings>
<message-resources parameter="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>




Login.java
package test2;

import org.apache.struts.action.*;
import javax.servlet.http.*;

public class Login
extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {

return (mapping.findForward("success"));

}
}




validation.xml
<?xml version="1.0" encoding="UTF-8"?>

<!--
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
-->

<form-validation>
<formset>
<form name="loginForm">
<field property="userName" depends="required,minlength">
<arg0 key="username" resource="false"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>
<var>
<var-name>minlength</var-name>
<var-value>2</var-value>
</var>
</field>
<field property="password" depends="required">
<msg key="password" resource="false"/>
</field>
</form>
</formset>
</form-validation>





2005-2-26 22:53:20 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:112) at org.apache.struts.action.RequestProcessor.processValidate(RequestProcessor.java:921) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:206) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164) at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:415) at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174) at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943) at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027) at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125) at java.lang.Thread.run(Thread.java:534)
...全文
157 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
seerzfm 2005-03-02
  • 打赏
  • 举报
回复
你贴出的配置和程序没有问题。我调试通过。可能是你别的东西没搞好。

我也在学习struts,有机会多交流啊。^0^
nivaini 2005-03-01
  • 打赏
  • 举报
回复
谢谢seerzfm为我查得这么仔细,但改过之后错误依旧。
还有什么方面没有做好呢?
seerzfm 2005-03-01
  • 打赏
  • 举报
回复
<action input="login.jsp" name="loginForm" path="/login" scope="request" type="test2.Login" validate="true">

改成

<action input="/login.jsp" name="loginForm" path="/login" scope="request" type="test2.Login" validate="true">
nivaini 2005-02-28
  • 打赏
  • 举报
回复
to:BillyW(阿弥陀佛)
我改成了
<html:form method="POST" action="login.do" onsubmit="return validateLoginForm(this);">
没有任何作用

to:lovelanzhi716(仰天长啸),programeyonger(功能规格书制作中)
因为书上写着就是动态,我就照抄的,我改成静态Form了,还是不行,一样的错误.

struts-config.xml
<form-beans>
<form-bean name="loginForm" type="test2.LoginForm" />
</form-beans>


LoginForm.java
package test2;

import org.apache.struts.validator.*;
import org.apache.struts.action.*;
import javax.servlet.http.*;

public class LoginForm extends ValidatorForm {
private String password;
private String userName;
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 actionMapping, HttpServletRequest httpServletRequest) {
return null;
}
*/
public void reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest) {
password = null;
userName = null;
}
}

lovelanzhi716 2005-02-28
  • 打赏
  • 举报
回复
你为什么要做成动态FORM呢,是不是哪里有特别需要啊
programeyonger 2005-02-28
  • 打赏
  • 举报
回复
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">


问题出在这里!!type="yourpackage.loginForm"

try it!
BillyW 2005-02-28
  • 打赏
  • 举报
回复
<html:form method="POST" action="login.do" >

上面这句需要你定上onsubmit事件的处理方法(调用验证js函数)
lovelanzhi716 2005-02-27
  • 打赏
  • 举报
回复
在STRUTS_CONFIG.XML里面的
<form-bean name="loginForm" type="org.apache.struts.validator.DynaValidatorForm">的这一句有错误吧,应该是type="test2.loginForm"

你试试...
nivaini 2005-02-27
  • 打赏
  • 举报
回复
谢谢帮忙,可是这是动态Form啊,没有test2.loginForm这个类啊,我改过了,还是不行

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧