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]>