Hi,

I created a <ActionClass>-validation.xml file for my own validation
relative to the location of my Action class that looks like this:

<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator
1.0//EN"
        "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd";>
                
<validators>
    <field name="name">
        <field-validator type="requiredstring">
            <message>You must enter a value for name</message>
        </field-validator>
    </field>
    <field name="email">
        <field-validator type="email">
            <message>You must enter a value for email</message>
        </field-validator>
    </field>

    <field name="birthday">
        <field-validator type="requiredstring">
            <message>You must enter a value for Birthday</message>
        </field-validator>
    </field>

    <field name="tin">
        <field-validator type="requiredstring">
            <message>You must enter a value for TIN</message>
        </field-validator>
    </field>
        
    <field name="url">
        <field-validator type="url">
            <message>You must enter a value for URL</message>
        </field-validator>
    </field>


    <field name="duns">
        <field-validator type="duns">
            <message>You must enter a valid Dun and Bradstreet
number</message>
        </field-validator>
    </field>    
    
</validators>

I have the validators.xml at the root of the classpath that look like
this:

<validators>
    <validator name="required"
       
class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator"/>
    <validator name="requiredstring"
       
class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/>
    <validator name="int" 
       
class="com.opensymphony.xwork.validator.validators.IntRangeFieldValidator"/>
    <validator name="date" 
       
class="com.opensymphony.xwork.validator.validators.DateRangeFieldValidator"/>
    <validator name="expression" 
       
class="com.opensymphony.xwork.validator.validators.ExpressionValidator"/>
    <validator name="email"
    
        class="com.opensymphony.xwork.validator.validators.EmailValidator"/>
    <validator name="url"
        class="com.opensymphony.xwork.validator.validators.URLValidator"/>
    
    <!--This is my custom validator-->
    <validator name="duns"
        class="com.ingenium.xwork_validation.validator.DUNSValidator"/>
                            
</validators>

As far as I know I setup everything right and the web server(JBossWeb)
logs all the validations intercepted by the ValidationInterceptor except
that the error message does not reflect to the web page.

Here's the my xwork.xml file too.

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-1.0.dtd";>
<xwork>
  <!--<include file="webwork-default.xml"/>-->
  
    
  <package name="default">
          <result-types>
            <result-type name="dispatcher"
class="com.opensymphony.webwork.dispatcher.ServletDispatcherResult"/>
            <result-type name="redirect"
class="com.opensymphony.webwork.dispatcher.ServletRedirectResult"/>
            <result-type name="velocity"
class="com.opensymphony.webwork.dispatcher.VelocityResult"/>
            <result-type name="chain"
class="com.opensymphony.xwork.ActionChainResult"/>
        </result-types>

        <interceptors>
            <interceptor name="timer"
class="com.opensymphony.xwork.interceptor.TimerInterceptor"/>
            <interceptor name="logger"
class="com.opensymphony.xwork.interceptor.LoggingInterceptor"/>
            <interceptor name="chain"
class="com.opensymphony.xwork.interceptor.ChainingInterceptor"/>
            <interceptor name="static-params"
class="com.opensymphony.xwork.interceptor.StaticParametersInterceptor"/>
            <interceptor name="params"
class="com.opensymphony.xwork.interceptor.ParametersInterceptor"/>
            <interceptor name="model-driven"
class="com.opensymphony.xwork.interceptor.ModelDrivenInterceptor"/>
            <interceptor name="component"
class="com.opensymphony.xwork.interceptor.component.ComponentInterceptor"/>
            <interceptor name="token"
class="com.opensymphony.webwork.interceptor.TokenInterceptor"/>
            <interceptor name="token-session"
class="com.opensymphony.webwork.interceptor.TokenSessionStoreInterceptor"/>
            <interceptor name="validation"
class="com.opensymphony.xwork.validator.ValidationInterceptor"/>
            <interceptor name="workflow"
class="com.opensymphony.xwork.interceptor.DefaultWorkflowInterceptor"/>
            
            <interceptor-stack name="defaultStack">
                <interceptor-ref name="timer"/>
                <interceptor-ref name="logger"/>
                <interceptor-ref name="static-params"/>
                <interceptor-ref name="params"/>
            </interceptor-stack>
            <interceptor-stack name="validationWorkflowStack">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="validation"/>
                <interceptor-ref name="workflow"/>
            </interceptor-stack>
        </interceptors>
        
    <interceptors>
      <interceptor-stack name="defaultComponentStack">
        <interceptor-ref name="component"/>
        <interceptor-ref name="defaultStack"/>
      </interceptor-stack>
    </interceptors>

    <default-interceptor-ref name="defaultStack"/>

    <action name="ShowForm"
class="com.ingenium.xwork_validation.ValidateAction">
      <result name="input" type="velocity">
        <param name="location">/ValidateFields.vm</param>
      </result>
      <result name="success" type="velocity">
        <param name="location">/ValidateFields.vm</param>
      </result>
      <result name="error" type="velocity">
        <param name="location">/ValidateFields.vm</param>
      </result>            
      <interceptor-ref name="defaultStack"/>
      
    </action>

    <action name="saveForm"
class="com.ingenium.xwork_validation.ValidateAction"
method="processForm">
      <result name="input" type="velocity">
        <param name="location">/ValidateFields.vm</param>
      </result>
      <result name="error" type="velocity">
        <param name="location">/ValidateError.vm</param>
      </result>
      <interceptor-ref name="validationWorkflowStack"/>
    </action>

  </package>
</xwork>



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Opensymphony-webwork mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/opensymphony-webwork

Reply via email to