Hi I am trying to use Validator in my application and can not get it to work. I have a single test form that I would like to use the Validator for client-side and server-side validation. If I add the following
<%@ taglib uri="/WEB-INF/struts-validator.tld" prefix="validator" %> reference to the taglib to the test form JSP page, when I access this JSP page after deploying the application, I get a NoClassDefFoundError exception thrown (see full message at the end of this email). If I remove the taglib reference, I don't get the error but the validation rules don't get applied either. The latest version of the struts-validator.jar file and the struts-validator.tld files are in the WEB-INF/libs directory. Thanks in advance for any help received. ============================================================ My web.xml file is defined as follows: ..... <servlet> <servlet-name>validator</servlet-name> <servlet-class>com.wintecinc.struts.action.ValidatorServlet</servlet-class> <init-param> <param-name>config</param-name> <param-value>/WEB-INF/validation.xml</param-value> </init-param> <init-param> <param-name>debug</param-name> <param-value>2</param-value> </init-param> <load-on-startup>2</load-on-startup> </servlet> .... <taglib> <taglib-uri>/tags/struts-validator.tld</taglib-uri> <taglib-location>/WEB-INF/struts-validator.tld</taglib-location> </taglib> .... My Validation.xml file is defined as below: <form-validation> <global> <validator name="required" classname="com.wintecinc.struts.validation.StrutsValidator" method="validateRequired" msg="error.required"> <javascript><![CDATA[ function validateRequired(form) { var bValid = true; var focusField = null; var i = 0; var fields = new Array(); oRequired = new required(); for (x in oRequired) { if ((form[oRequired[x][0]].type == 'text' || form[oRequired[x][0]].type == 'textarea' || form[oRequired[x][0]].type == 'select' || form[oRequired[x][0]].type == 'radio' || form[oRequired[x][0]].type == 'password') && form[oRequired[x][0]].value == '') { if (i == 0) focusField = form[oRequired[x][0]]; fields[i++] = oRequired[x][1]; bValid = false; } } if (fields.length > 0) { focusField.focus(); alert(fields.join('\n')); } return bValid; }]]> </javascript> </validator> </global> <formset> <form name="personalDetailsForm"> <field property="fName" depends="required,mask"> <arg0 key="label.fname"/> <msg name="mask" key="prompt.personalDetailsForm.fname.maskmsg"/> <arg0 key="label.fname"/> <var> <var-name>mask</var-name> <var-value>^[a-zA-Z]*$</var-value> </var> </field> </form> </formset> </form-validation> ERROR TEXT ====================================================== <01-Nov-01 11:37:51 GMT> <Info> <HTTP> <[WebAppServletContext(2791227,olympus,/olympus)] r esolved taglib uri '/WEB-INF/struts-html.tld' to taglib-location /WEB-INF/struts-html.tld: > <01-Nov-01 11:37:52 GMT> <Error> <HTTP> <[WebAppServletContext(2791227,olympus,/olympus)] Servlet failed with Exception java.lang.NoClassDefFoundError: org/apache/struts/action/ActionMessage at java.lang.Class.getMethods0(Native Method) at java.lang.Class.getDeclaredMethods(Class.java:1039) at java.beans.Introspector$1.run(Introspector.java:852) at java.security.AccessController.doPrivileged(Native Method) at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:850) at java.beans.Introspector.getTargetEventInfo(Introspector.java:556) at java.beans.Introspector.getBeanInfo(Introspector.java:294) at java.beans.Introspector.getBeanInfo(Introspector.java:128) at weblogic.servlet.jsp.StandardTagLib.parseTagDD(StandardTagLib.java:1003) at weblogic.servlet.jsp.StandardTagLib.parseDD(StandardTagLib.java:941) at weblogic.servlet.jsp.StandardTagLib.<init>(StandardTagLib.java:207) at weblogic.servlet.jsp.JspLexer.loadTagLib(JspLexer.java:145) at weblogic.servlet.jsp.JspLexer.mTAGLIB_DIRECTIVE_BODY(JspLexer.java:4177) at weblogic.servlet.jsp.JspLexer.mTAGLIB_DIRECTIVE(JspLexer.java:4018) at weblogic.servlet.jsp.JspLexer.mDIRECTIVE(JspLexer.java:3865) at weblogic.servlet.jsp.JspLexer.mSTANDARD_THING(JspLexer.java:2039) at weblogic.servlet.jsp.JspLexer.mTOKEN(JspLexer.java:1853) at weblogic.servlet.jsp.JspLexer.nextToken(JspLexer.java:1735) at weblogic.servlet.jsp.JspLexer.parse(JspLexer.java:1015) at weblogic.servlet.jsp.JspParser.doit(JspParser.java:78) at weblogic.servlet.jsp.JspParser.parse(JspParser.java:181) at weblogic.servlet.jsp.Jsp2Java.outputs(Jsp2Java.java:119) at weblogic.utils.compiler.CodeGenerator.generate(CodeGenerator.java:255) at weblogic.servlet.jsp.JspStub.compilePage(JspStub.java:327) at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:189) at weblogic.servlet.jsp.JspStub.prepareServlet(JspStub.java:154) at weblogic.servlet.internal.ServletStubImpl.getServlet(ServletStubImpl.java:36 8) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java :24 2) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java :30 4) at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java :20 0) at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo nte xt.java:2456) at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java :20 39) at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139) at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120) > <01-Nov-01 11:39:13 GMT> <Info> <Management> <Configuration changes for domain saved to th e repository.> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>