今天搞了一天也不知道怎么验证不了我的代码:(如果不验证,代码是可以正确跳转的,加上验证就没反映了)如果看不懂我可以把源码给发过去
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>

解决方案 »

  1.   

    还有就是我的action中的逻辑判断是
    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)
    好几个这种类型的错误
      

  2.   

    <html:errors property="userName"/>
    在properties文件中userName找不到对应的值
      

  3.   

    一般不需要用SessionActionErrors errors=new ActionErrors();
    errors.add("userName", new ActionMessage("errors.required"));


    if(true){//判断
    //TODO
    }
                     //最后判断ActionErrors对象是否为空
    if(!errors.isEmpty()){
    return mapping.getInputForward();
    }else{
                        //跳转成功页面
                    }