I am trying to use the validator framework for some simple form-field
validation. Under web-inf, I have placed the default validator-rules.xml
eg:
/WEB-INF/validator-rules.xml (from the extracted examples).
and
/WEB-INF/validation.xml (from the storefront example, see below);
and in my struts-config.xml file I added this:
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
<set-property property="pathnames"
value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>
So it appears I have put the proper pieces in place, but when the webapp
starts-up, I get the below error, which looks like it cannot find the files?
Also, I have validated that the files are not bad xml.
Any ideas?
Thanks,
Scott
Error:
[14/Mar/2005:11:16:52] warning (28749): StandardWrapper[/dealer:dealer]:
WEB2795: Marking servlet dealer as unavailable
[14/Mar/2005:11:16:52] failure (28749): WebModule[/dealer]: WEB2783: Servlet
/dealer threw load() exception
javax.servlet.UnavailableException: Cannot load a validator resource from
'/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml'
at
org.apache.struts.validator.ValidatorPlugIn.init(ValidatorPlugIn.java:174)
at
org.apache.struts.action.ActionServlet.initModulePlugIns(ActionServlet.java:839)
at org.apache.struts.action.ActionServlet.init(ActionServlet.java:332)
at javax.servlet.GenericServlet.init(GenericServlet.java:256)
at
org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:921)
at
org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:813)
at
org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3478)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:3760)
at com.iplanet.ias.web.WebModule.start(WebModule.java:251)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1133)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:652)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1133)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:355)
at org.apache.catalina.startup.Embedded.start(Embedded.java:995)
at com.iplanet.ias.web.WebContainer.start(WebContainer.java:431)
at com.iplanet.ias.web.WebContainer.startInstance(WebContainer.java:500)
at com.iplanet.ias.server.J2EERunner.confPostInit(J2EERunner.java:161)
validation.xml
<form-validation>
<global>
<constant>
<constant-name>phone</constant-name>
<constant-value>^\(?(\d{3})\)?[-| ]?(\d{3})[-|
]?(\d{4})$</constant-value>
</constant>
<constant>
<constant-name>zip</constant-name>
<constant-value>^\d{5}\d*$</constant-value>
</constant>
</global>
<formset>
<constant>
<constant-name>zip</constant-name>
<constant-value>^\d{5}(-\d{4})?$</constant-value>
</constant>
<form name="checkoutForm">
<field
property="firstName"
depends="required,mask">
<arg0 key="label.firstName"/>
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>
</var>
</field>
<field
property="lastName"
depends="required,mask,maxlength">
<msg name="mask" key="label.lastName"/>
<arg0 key="label.lastName"/>
<arg1 name="maxlength" key="${var:maxlength}" resource="false"/>
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>
</var>
<var>
<var-name>maxlength</var-name>
<var-value>15</var-value>
</var>
</field>
<field
property="address"
depends="required,mask">
<arg0 key="label.address"/>
<var>
<var-name>mask</var-name>
<var-value>^\w+$</var-value>
</var>
</field>
<field
property="city"
depends="required,mask">
<arg0 key="label.city"/>
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>
</var>
</field>
<field
property="state"
depends="required,mask">
<arg0 key="label.state"/>
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>
</var>
</field>
<field
property="postalCode"
depends="required,mask">
<arg0 key="label.postalCode"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>
<var>
<var-name>mask</var-name>
<var-value>${zip}</var-value>
</var>
</field>
<field
property="country"
depends="required,mask">
<arg0 key="label.country"/>
<var>
<var-name>mask</var-name>
<var-value>^[a-zA-Z]*$</var-value>
</var>
</field>
<field
property="phone"
depends="required,mask">
<arg0 key="label.phone"/>
<arg1 name="minlength" key="${var:minlength}" resource="false"/>
<var>
<var-name>mask</var-name>
<var-value>${phone}</var-value>
</var>
</field>
</form>
</formset>
</form-validation>
Scott K Purcell | Developer | VERTIS |
555 Washington Ave. 4th Floor | St. Louis, MO 63101 |
314.588.0720 Ext:1320 | [EMAIL PROTECTED] | http://www.vertisinc.com
<http://www.vertisinc.com/>
Vertis is the premier provider of targeted advertising, media, and
marketing services that drive consumers to marketers more effectively.