I'm fairly new to Struts, and have been trying to get my simple 
application to work - using Struts 1.1, Velocity 1.3.1, Velocity 
Tools 1.1-rc1, and Tomcat 4.1.29. The application (such as it is)
works as far as presentation and workflow - but _isn't_ working is
the Validator framework. I've spent the last day mining the web for
help and haven't been able to progress at all...

The validator files _are_ being loaded - I see them in the log
files. And the rules/formset are being parsed - again, I see it in
the log. However, when the form is submitted on the first page
(payment.vm) and it goes to the second...no validation takes place.
No errors are appearing in either the catalina.out or localhost
log file. I have kicked up the log level to trace and still see
nothing wrong - other than the validation doesn't seem to happen.

Any help or suggestions would be GREATLY appreciated - I'm rather
stuck at the moment. I'm sure its just some silly configuration
or other error...

I'm including all the relevant files inline below. 

Thank you very much

  Andy Akins
  
====== web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
  PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
  "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd";>
<web-app>
  <display-name>CCPAY</display-name>  
  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
      <param-name>config</param-name>
      <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
      <param-name>debug</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>detail</param-name>
      <param-value>2</param-value>
    </init-param>
    <init-param>
      <param-name>validate</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
  </servlet>
  <servlet>
    <servlet-name>velocity</servlet-name>
    
<servlet-class>org.apache.velocity.tools.view.servlet.VelocityViewServlet</servlet-class>
    <init-param>
      <param-name>org.apache.velocity.toolbox</param-name>
      <param-value>/WEB-INF/toolbox.xml</param-value>
    </init-param>
    <init-param>
      <param-name>org.apache.velocity.properties</param-name>
      <param-value>/WEB-INF/velocity.properties</param-value>
   </init-param>
   <load-on-startup>10</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>velocity</servlet-name>
    <url-pattern>*.vm</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

===== struts-config.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd";>
<struts-config>
  <form-beans>
    <form-bean name="paymentForm" type="org.apache.struts.validator.DynaValidatorForm">
      <form-property name="amount" type="java.lang.String" initial="boo" />
    </form-bean>
  </form-beans>
  <action-mappings>
    <action path="/Payment"
      type="org.apache.struts.actions.ForwardAction"
      name="paymentForm"
      validate="false"
      parameter="/payment.vm"/>
    <action path="/Processing"
      type="org.apache.struts.actions.ForwardAction"
      name="paymentForm"
      input="/Payment.do"
      validate="true"
      parameter="/processing.vm"/>
  </action-mappings>
  <message-resources parameter="application" />
  <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames"
      value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
  </plug-in>
</struts-config>

===== validation.xml - I'm using the standard validate-rules.xml
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE form-validation PUBLIC
  "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
  "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd";>
<form-validation>
  <formset>
    <form name="paymentForm">
      <field property="amount"
        depends="required,email">
        <msg name="email" key="errors.invalid"/>
        <arg0 key="paymentForm.label.amount" />
      </field>
    </form>
  </formset>
</form-validation>

===== Toolbox.xml
<?xml version="1.0"?>

<toolbox>
  <tool>
     <key>link</key>
     <class>org.apache.velocity.tools.struts.StrutsLinkTool</class>
  </tool>
  <tool>
     <key>slink</key>
     <class>org.apache.velocity.tools.struts.SecureLinkTool</class>
  </tool>
  <tool>
     <key>text</key>
     <class>org.apache.velocity.tools.struts.MessageTool</class>
  </tool>
  <tool>
     <key>errors</key>
     <class>org.apache.velocity.tools.struts.ErrorsTool</class>
  </tool>
  <tool>
     <key>messages</key>
     <class>org.apache.velocity.tools.struts.ActionMessagesTool</class>
  </tool>
  <tool>
     <key>form</key>
     <class>org.apache.velocity.tools.struts.FormTool</class>
  </tool>
  <tool>
     <key>tiles</key>
     <class>org.apache.velocity.tools.struts.TilesTool</class>
  </tool>
  <tool>
     <key>validator</key>
     <class>org.apache.velocity.tools.struts.ValidatorTool</class>
  </tool>
</toolbox>

===== payment.vm
<html lang="en-US">
  <head>
    <title>CCPAY</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="robots" content="noindex,nofollow">
    <link rel="stylesheet" type="text/css" href="/ccpay/pages/css/tccles.css">
  </head>
  <body class="body">
        #errorMarkup()
    <form action="$link.setAction('Processing')" method="post">
      <table border="0" cellpadding="2" cellspacing="4" align="center" summary="Credit 
Card Information" width="100%">
        <tr> 
          <td class="head">Fee to be billed to your card</td>
          <td> $
            <input type="text" size="15" name="amount" value="$!paymentForm.amount" >
          </td>
        </tr>
      </table>
      <input type="submit" name="submit" />
    </form>
  </body>
</html>

===== processing.vm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html lang="en-US">
  <head>
    <title>Processing Page.</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <meta name="robots" content="noindex,nofollow">
    <link rel="stylesheet" type="text/css" href="/ccpay/pages/css/tccles.css">
  </head>
  <body class="body">
    <div align="center"> <img src="/ccpay/pages/images/header.gif" alt="State of 
Tennessee Payment Option."> 
    </div>
    <div align="center"><br>
      <h4>Processing ...<br>
        Thank you for your patience<br>
        $!paymentForm.amount<br>
        <img src="https://www.tennesseeanytime.org/tnanytime/apps/processing.gif"; 
alt="Showing Progress."></h4>
    </div>
  </body>
</html>

===== VM_global_library.vm
## Display all queued Struts errors
#macro (errorMarkup)
    #if ($errors.exist() )
        <ul>
        #foreach ($e in $errors.all )
            $e
        #end
        </ul>
    #end
#end






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to