今天搞了一天也不知道怎么验证不了我的代码:(如果不验证,代码是可以正确跳转的,加上验证就没反映了)如果看不懂我可以把源码给发过去
validation.xml<form-validation>
<formset>
<form name="loginForm">
<field property="userName" depends="required">
<arg0 key="form1.userName" />
</field>
</form>
</formset></form-validation>
ApplicationResource.properties如下form1.userName=用户名
form1.password=密码
form1.title=登陆
errors.required={0}不能为空
errors.minlength={0}长度不能小于{1} 个字符
errors.maxlength={0}不能大于{1} 个字符.上面的不知道有没有错我感觉是jsp页面有错如下:
<body>
<form name="form1" action="login.do">
<table align="center">
<tr><td colspan="2" align="center"><bean:message bundle="myKey" key="form1.title"/></td></tr>
<tr><td><bean:message bundle="myKey" key="form1.userName"/></td><td><input type="text" name="userName" size="18"></td><TD><html:errors property="userName"/></TD></tr>
<tr><td><bean:message bundle="myKey" key="form1.password"/></td><td> <input type="password" name="password" size="18"></td><TD><html:errors property="password"/></TD></tr>
<tr><td align="right"><input type="submit" value="提交"></td><td align="left"><input type="reset" value="重置"></td></tr>
</table>
</form>
是不是上面红色字体部分写的不对 </body>
validation.xml<form-validation>
<formset>
<form name="loginForm">
<field property="userName" depends="required">
<arg0 key="form1.userName" />
</field>
</form>
</formset></form-validation>
ApplicationResource.properties如下form1.userName=用户名
form1.password=密码
form1.title=登陆
errors.required={0}不能为空
errors.minlength={0}长度不能小于{1} 个字符
errors.maxlength={0}不能大于{1} 个字符.上面的不知道有没有错我感觉是jsp页面有错如下:
<body>
<form name="form1" action="login.do">
<table align="center">
<tr><td colspan="2" align="center"><bean:message bundle="myKey" key="form1.title"/></td></tr>
<tr><td><bean:message bundle="myKey" key="form1.userName"/></td><td><input type="text" name="userName" size="18"></td><TD><html:errors property="userName"/></TD></tr>
<tr><td><bean:message bundle="myKey" key="form1.password"/></td><td> <input type="password" name="password" size="18"></td><TD><html:errors property="password"/></TD></tr>
<tr><td align="right"><input type="submit" value="提交"></td><td align="left"><input type="reset" value="重置"></td></tr>
</table>
</form>
是不是上面红色字体部分写的不对 </body>
LoginForm login=(LoginForm)form;
String name=login.getUserName();
HttpSession session=request.getSession();
String password=login.getPassword();
String forward="fail";
if(name.equals("zhangsan")&&password.equals("123456")){
forward="success";
session.setAttribute("username", name);
}
return mapping.findForward(forward);
如果我在登陆页面输入正确的字符串(zhangsan 123456)就显示这种提示
2009-3-17 1:04:52 org.apache.commons.validator.ValidatorAction executeValidationMethod
严重: Unhandled exception thrown during validation: No message resources found for bundle: org.apache.struts.action.MESSAGE
java.lang.NullPointerException: No message resources found for bundle: org.apache.struts.action.MESSAGE
at org.apache.struts.validator.Resources.getMessageResources(Resources.java:140)
at org.apache.struts.validator.Resources.getActionMessage(Resources.java:390)
at org.apache.struts.validator.FieldChecks.validateRequired(FieldChecks.java:92)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.commons.validator.ValidatorAction.executeValidationMethod(ValidatorAction.java:544)
at org.apache.commons.validator.Field.validateForRule(Field.java:796)
at org.apache.commons.validator.Field.validate(Field.java:876)
at org.apache.commons.validator.Form.validate(Form.java:288)
at org.apache.commons.validator.Validator.validate(Validator.java:351)
at org.apache.struts.validator.ValidatorForm.validate(ValidatorForm.java:116)
at org.apache.struts.chain.commands.servlet.ValidateActionForm.validate(ValidateActionForm.java:58)
at org.apache.struts.chain.commands.AbstractValidateActionForm.execute(AbstractValidateActionForm.java:120)
at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:228)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:216)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:634)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:445)
at java.lang.Thread.run(Unknown Source)
好几个这种类型的错误
在properties文件中userName找不到对应的值
errors.add("userName", new ActionMessage("errors.required"));
if(true){//判断
//TODO
}
//最后判断ActionErrors对象是否为空
if(!errors.isEmpty()){
return mapping.getInputForward();
}else{
//跳转成功页面
}