首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

Validator框架使用时碰到有关问题

2012-01-30 
Validator框架使用时碰到问题我在用Validator验证框架时碰到发生以下错误:[ERROR]DynaValidatorForm-org.a

Validator框架使用时碰到问题
我在用Validator验证框架时碰到发生以下错误:
[ERROR]   DynaValidatorForm   -   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)> 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:827)
                at   org.apache.commons.validator.Field.validate(Field.java:906)
                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:928)
                at   org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:204)
                at   org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
                at   org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
                at   javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
                at   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
                at   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
                at   org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
                at   org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
                at   org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
                at   org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
                at   org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
                at   org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)


                at   org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
                at   org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
                at   org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
                at   org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
                at   org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
                at   org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
                at   java.lang.Thread.run(Thread.java:595)

相关配置文件:
struts-config.xml:
...
<form-bean     name= "insertForm "
type= "org.apache.struts.validator.DynaValidatorForm "   >
<form-property   name= "name "   type= "java.lang.String "   />
<form-property   name= "phone "   type= "java.lang.String "   />
<form-property   name= "address "   type= "java.lang.String "   />
</form-bean>
...        
<action       path= "/insert "
                    type= "addressbook.actions.InsertAction "
                    name= "insertForm "
                    scope= "session "
                    input= "/insert.jsp "
                    validate= "true ">
</action>
...        
<message-resources   parameter= "addressbook.Application "/>
   
<plug-in   className= "org.apache.struts.validator.ValidatorPlugIn ">
    <set-property   property= "pathnames "   value= "/WEB-INF/validator-rules.xml,/WEB-INF/validator.xml "   />
</plug-in>
...

validator.xml:
...
<formset>
<form   name= "insertForm ">
<field   property= "name "   depends= "required ">    
<arg0   key= "prompt.name "   />
</field>

<field   property= "phone "   depends= "required,minlength ">
<arg0   key= "prompt.phone "/>
<arg1   name= "minlength "   key= "${var:minlength} "   resource= "true "/>
<var>
<var-name> minlength </var-name>
<var-value> 8 </var-value>
</var>    
</field>

<field   property= "address "   depends= "required ">
<arg0   key= "prompt.address "   />
</field>
</form>
</formset>
...

Application.properties:


...
#   The   error   messages   for   the   Validation   Actions
errors.required={0}   is   required.
errors.minlength={0}   can   not   be   less   than   {1}   characters.
errors.maxlength={0}   can   not   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   an   invalid   credit   card   number.
errors.email={0}   is   an   invalid   e-mail   address.
请高手帮忙

[解决办法]
你这个是struts的什么版本啊?是struts1.2吗?还是其他的?注意版本之间的区别.
老的版本是使用ActionErrors的,而新的使用ActionMessages,还有validateRequired的方法中参数个数也是不一样的

热点排行