Hi all,

I am trying to get validation working in my Struts app and am having a
decidedly tough time considering this really shouldn't be so hard.  I am
initially trying to get one field validated in one form.  The validation
process seems to be working since my html source shows some javascript.
Here is what is produced: 
 
<script type="text/javascript" language="Javascript1.1"> 
<!-- Begin 

     var bCancel = false; 

    function validateFamilyForm(form) {

        if (bCancel) 
      return true; 
        else 
       return true; 
   } 

//End --> 
</script>

So I am guessing that at least parts of the validation framework are
working.  It just doesn't seem to be picking up the validations I have
specified in my family_validation.xml file.  Can anybody see from the code
below what I am doing to cause it not to create the other validation
javascript?

Cheers
Tom

What follows are the relevent pieces of xml and code: (I have also attached
the jsp and code to the email)

My JSP Page
-----------

.....
.....
<html:form action='/addFamily' method="post" onsubmit="return
validateFamilyForm(this);">
...
...
    <html:text property='parentOneTitle' tabindex="1"/>
...
...
...
<html:javascript formName="FamilyForm"/>

-----------


My FamilyForm 
----------------

public final class FamilyForm extends AbstFormBase (AbstFormBase extends
ValidatorForm) 

...
...

        public String getParentOneTitle() {
                return family.getParentOneTitle();
        }
        
        public void setParentOneTitle(String _p1_title) {
                family.setParentOneTitle(_p1_title);
        }
        
(This form does not have the reset and validate methods as required by
ValidatorForm)
-----------------

Struts Config XML
-----------------

....
        <form-bean              name="FamilyForm"
type="com.camp.forms.family.FamilyForm"/>
....
                <!-- AddFamily Action -->
            <action    path="/addFamily"
                       type="com.camp.actions.family.addFamilyAction"
                       name="FamilyForm"
                       scope="session"
                       validate="true"
                       input="/addFamily.jsp"
                           parameter="submit">
                       <forward name="failure"  path="/addFamily.jsp"/> 
                       <forward name="menu" contextRelative="true"
path="/jsp/menu/Menu.do" redirect="true"/> 
            </action>
....
        <!-- Validator Configuration -->
        <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
                <set-property property="pathnames"
value="/WEB-INF/conf/validation/validator-rules.xml, 
        
/WEB-INF/conf/validation/family_validation.xml"/>
        </plug-in>
....
....

-----------------

family_validation.xml
---------------------
<form-validation>
        <formset>
                <form name="FamilyForm">
                        
                        <field property="parentOneTitle"
depends="required,mask,minlength">
                                <arg key="error.required" position="0"/>
                                <arg name="minlength" key="${var:minlength}"
resource="false" position="1"/>
                                        
                                <var>
                                        <var-name>mask</var-name>
                                        <var-value>^\w+$</var-value>
                                </var>
                                        
                                <var>
                                        <var-name>minlength</var-name>
                                        <var-value>5</var-value>
                                </var>
                        </field>
                        
                </form>
        </formset>
</form-validation>

------------------


<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd";>
<!--
  $Id: validator-rules.xml 159291 2005-03-28 20:19:29Z niallp $

   This file contains the default Struts Validator pluggable validator
   definitions.  It should be placed somewhere under /WEB-INF and
   referenced in the struts-config.xml under the plug-in element
   for the ValidatorPlugIn.

      <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
                                                  /WEB-INF/validation.xml"/>
      </plug-in>

   These are the default error messages associated with
   each validator defined in this file.  They should be
   added to your projects ApplicationResources.properties
   file or you can associate new ones by modifying the
   pluggable validators msg attributes in this file.

   # Struts Validator Error Messages
   errors.required={0} is required.
   errors.minlength={0} can not be less than {1} characters.
   errors.maxlength={0} can not be greater than {1} characters.
   errors.invalid={0} is invalid.

   errors.byte={0} must be a byte.
   errors.short={0} must be a short.
   errors.integer={0} must be an integer.
   errors.long={0} must be a long.
   errors.float={0} must be a float.
   errors.double={0} must be a double.

   errors.date={0} is not a date.
   errors.range={0} is not in the range {1} through {2}.
   errors.creditcard={0} is an invalid credit card number.
   errors.email={0} is an invalid e-mail address.

   Note: Starting in Struts 1.2.0 the default javascript definitions have
         been consolidated to commons-validator. The default can be overridden
         by supplying a <javascript> element with a CDATA section, just as
         in struts 1.1.

-->

<form-validation>

   <global>

      <validator name="required"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateRequired"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
                  msg="errors.required"/>

      <validator name="requiredif"
                 classname="org.apache.struts.validator.FieldChecks"
                 method="validateRequiredIf"
                 methodParams="java.lang.Object,
                               org.apache.commons.validator.ValidatorAction,
                               org.apache.commons.validator.Field,
                               org.apache.struts.action.ActionMessages,
                               org.apache.commons.validator.Validator,
                               javax.servlet.http.HttpServletRequest"
                 msg="errors.required"/>

      <validator name="validwhen"
          msg="errors.required"
                 classname="org.apache.struts.validator.validwhen.ValidWhen"
                 method="validateValidWhen"
                 methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"/>


      <validator name="minlength"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateMinLength"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.minlength"
           jsFunction="org.apache.commons.validator.javascript.validateMinLength"/>


      <validator name="maxlength"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateMaxLength"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.maxlength"
           jsFunction="org.apache.commons.validator.javascript.validateMaxLength"/>



      <validator name="mask"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateMask"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.invalid"/>


      <validator name="byte"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateByte"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.byte"
       jsFunctionName="ByteValidations"/>


      <validator name="short"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateShort"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.short"
       jsFunctionName="ShortValidations"/>


      <validator name="integer"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateInteger"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.integer"
       jsFunctionName="IntegerValidations"/>



      <validator name="long"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateLong"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.long"/>


      <validator name="float"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateFloat"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.float"
       jsFunctionName="FloatValidations"/>

      <validator name="double"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateDouble"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.double"/>


      <validator name="date"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateDate"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.date"
       jsFunctionName="DateValidations"/>


      <validator name="intRange"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateIntRange"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends="integer"
                  msg="errors.range"/>


      <validator name="floatRange"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateFloatRange"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends="float"
                  msg="errors.range"/>

      <validator name="doubleRange"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateDoubleRange"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends="double"
                  msg="errors.range"/>


      <validator name="creditCard"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateCreditCard"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.creditcard"/>


      <validator name="email"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateEmail"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.email"/>

      <validator name="url"
            classname="org.apache.struts.validator.FieldChecks"
               method="validateUrl"
         methodParams="java.lang.Object,
                       org.apache.commons.validator.ValidatorAction,
                       org.apache.commons.validator.Field,
                       org.apache.struts.action.ActionMessages,
                       org.apache.commons.validator.Validator,
                       javax.servlet.http.HttpServletRequest"
              depends=""
                  msg="errors.url"/>

     <!--
       This simply allows struts to include the validateUtilities into a page, it should
       not be used as a validation rule.
     -->
     <validator name="includeJavaScriptUtilities"
            classname=""
               method=""
         methodParams=""
              depends=""
                  msg=""
           jsFunction="org.apache.commons.validator.javascript.validateUtilities"/>

   </global>

</form-validation>
<!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="FamilyForm">
			
			<field property="parentOneTitle" depends="required,mask,minlength">
				<arg key="error.required" position="0"/>
				<arg name="minlength" key="${var:minlength}" resource="false" position="1"/>
					
				<var>
					<var-name>mask</var-name>
					<var-value>^\w+$</var-value>
				</var>
					
				<var>
					<var-name>minlength</var-name>
					<var-value>5</var-value>
				</var>
			</field>
			
		</form>
	</formset>
</form-validation>
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!-- CaMP, the open source camp management system -->
<!--                                             -->
<!--       Distributable under GPL license.      -->
<!--       See terms of license at gnu.org.		 -->
<!--											 -->

<!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 Bean Definitions =================================== -->
  <form-beans>
  	
        <form-bean		name="searchForm"		type="com.camp.forms.search.SearchForm">
        	<form-property name="criteria" type="com.camp.common.search.SearchItem[]"/>
        </form-bean>
        <form-bean		name="FamilyForm"	type="com.camp.forms.family.FamilyForm"/>

  </form-beans>

  <!-- ========== Global Forward Definitions ============================== -->

	<global-forwards>   
	  
		<!-- Family -->
	    <forward   name="addFamily"			path="/addFamily.do"/>
	    <forward   name="searchFamily"		path="/searchFamily.do"/>
	    <forward   name="updateFamily"		path="/updateFamily.do"/>
	    <forward   name="deleteFamily"		path="/deleteFamily.do"/>
	    <forward   name="viewFamily"		path="/viewFamily.do"/>
		
		<forward   name="menu" contextRelative="true" path="/jsp/menu/Menu.do" redirect="true"/>
		<forward   name="logoff" contextRelative="true" path="/jsp/logon/Logoff.do" redirect="true"/>
		
		<!-- Camper stuff -->
		<forward   name="addCamper" contextRelative="true" path="/jsp/camper/addCamper.do" redirect="true"/>
		<forward   name="viewCamper" contextRelative="true" path="/jsp/camper/viewCamper.do" redirect="true"/>

		<!-- Registration stuff -->
		<forward   name="viewRegistration" contextRelative="true" path="/jsp/registration/viewRegistration.do" redirect="true"/>
	
	</global-forwards>
	
	
	  <!-- ========== Action Mapping Definitions ============================== -->
    <action-mappings>
	
	    <action    path="/addFamily"
	               type="com.camp.actions.family.addFamilyAction"
	               name="FamilyForm"
	               scope="session"
	               validate="true"
	               input="/addFamily.jsp"
				   parameter="submit">
	               <forward name="failure" 	path="/addFamily.jsp"/> 
	               <forward name="menu" 	contextRelative="true" path="/jsp/menu/Menu.do" redirect="true"/> 
	               <forward name="add_camper" 	contextRelative="true" path="/jsp/camper/addCamper.do" redirect="true"/> 
	    </action>
	    
	    <action    path="/searchFamily"
	               type="com.camp.actions.family.searchFamilyAction"
	               name="searchForm"
	               scope="session"
	               validate="false"
	               input="/searchCriteriaFamily.jsp">
	               <forward name="search" 	path="/searchCriteriaFamily.jsp"/>
	               <forward name="choice" 	path="/displayResultsFamily.jsp"/>
	               <forward name="menu" 	contextRelative="true" path="/jsp/menu/Menu.do" redirect="true"/> 
	    </action>
	
	    <action    path="/updateFamily"
	               type="com.camp.actions.family.updateFamilyAction"
	               name="FamilyForm"
	               scope="session"
	               validate="true"
	               input="/updateFamily.jsp">
	               <forward name="failure" 	path="/updateFamily.jsp"/>
	               <forward name="show" 	path="/updateFamily.jsp"/>
	               <forward name="menu" 	contextRelative="true" path="/jsp/menu/Menu.do" redirect="true"/> 
	    </action>
		
	    <action    path="/deleteFamily"
	               type="com.camp.actions.family.deleteFamilyAction"
	               name="FamilyForm"
	               scope="session"
	               validate="false"
	               input="/searchCriteriaFamily.jsp"
				   parameter="submit">
	               <forward name="confirm" 	path="/deleteFamily.jsp"/>
				   <forward name="menu" 	contextRelative="true" path="/jsp/menu/Menu.do" redirect="true"/>
	    </action>
		
	    <action    path="/viewFamily"
	               type="com.camp.actions.family.viewFamilyAction"
	               name="FamilyForm"
	               scope="session"
	               validate="false"
	               input="/searchCriteriaFamily.jsp"
				   parameter="submit">
				   <forward name="show" path="/viewFamily.jsp"/>
				   <forward name="menu" 	contextRelative="true" path="/jsp/menu/Menu.do" redirect="true"/>
	    </action>
	
	</action-mappings>
	
	<!-- Validator Configuration -->
	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
		<set-property property="pathnames" value="/WEB-INF/conf/validation/validator-rules.xml, /WEB-INF/conf/validation/family_validation.xml"/>
	</plug-in>

</struts-config>

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

Reply via email to