On Aug 31, 2004, at 5:53 AM, Nevine El-Saeed wrote:

I think the whole problem is in the way u wrote the tags...
u have:

@struts.form-field name="NewUserForm"

it should be:

@struts.form-field form-name="NewUserForm"

what I find strange though is that when I put these validations on the
setter methods, the validation conditions weren't transformed to the
generated form file and so weren't included in the validation.xml file!
it only worked when I included the validation tags and conditions on the
getter methods!!
does anyone have an explanation for that?

This is as designed. If you're working with a POJO, most everything goes on the getters. With ActionForms, the @struts.validator tags go on the setters since that is when validation occurs. When you generate a Form from a POJO, the @struts.validator tags will get put onto the setters.


Matt



On Mon, 2004-08-30 at 16:15, Eric Chow wrote:
Hi,

I use xdoclet to generate struts' validation.xml.

But it only generate the validator for one Form if I specify more than
one Form name in a bean.

It seems the first Form will be included the validator, and the
remaing Forms will not include any validation rules !!

Therefore, it just generate the validation rules for LogonForm !!!

Is it a bug or something I missed ???


The following is my User.java and the generated validation.xml.


package com.echows.ejcourse.portal.model;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;


/** * * @struts.form * name="LogonForm" * extends="org.apache.struts.validator.ValidatorForm" * * @struts.form * name="NewUserForm" * extends="org.apache.struts.validator.ValidatorForm" * * * @jdo.persistence-capable * identity-type="application" * objectid-class="com.echows.ejcourse.portal.pk.UserPK" * * @jdo.class-vendor-extension * vendor-name="${jdo.vendor}" * key="table-name" * value="User" * * * * */ public class User extends AbstractBean {

   /**
    * @jdo.field
    *    persistence-modifier="persistent"
    *    collection-type="collection"
    *    element-type="Role"
    *
    * @jdo.field-vendor-extension
    *    vendor-name="${jdo.vendor}"
    *    key="clear-on-delete"
    *    value="true"
    *
    * @jdo.collection-vendor-extension
    *    vendor-name="${jdo.vendor}"
    *    key="clear-on-delete"
    *    value="true"
    *
    * @jdo.collection-vendor-extension
    *    vendor-name="${jdo.vendor}"
    *    key="table-name"
    *    value="users_roles"
    *
    *
    * @jdo.collection-vendor-extension
    *    vendor-name="${jdo.vendor}"
    *    key="owner-column-name"
    *    value="username"
    *
    *
    * @jdo.collection-vendor-extension
    *    vendor-name="${jdo.vendor}"
    *    key="element-column-name"
    *    value="rolename"
    *
    */
   private Collection roles = new ArrayList();


/** * @jdo.field * persistence-modifier="persistent" * * @jdo.field-vendor-extension * vendor-name="${jdo.vendor}" * key="column-name" * value="USERINFO_ID" * */ private UserInfo userInfo;

   /**
    * @jdo.field
    *    persistence-modifier="persistent"
    *    null-value="exception"
    *
    * @jdo.field-vendor-extension
    *    vendor-name="${jdo.vendor}"
    *    key="length"
    *    value="max 30"
    *
    */
   private String passwords;

   /**
    * @jdo.field
    *    persistence-modifier="persistent"
    *    null-value="exception"
    *    primary-key="true"
    *
    * @jdo.field-vendor-extension
    *    vendor-name="${jdo.vendor}"
    *    key="length"
    *    value="max 20"
    *
    */
   private String username;

   /**
    * @jdo.field
    *    persistence-modifier="persistent"
    *    null-value="exception"
    *
    *
    */
   private boolean status = false;



   // for NewUserForm
   /**
    * @jdo.field
    *    persistence-modifier="none"
    *
    *
    */
   private String roleName;
   /**
    * @jdo.field
    *    persistence-modifier="none"
    *
    *
    */
   private String action;


/** * Constructor. */ public User() { ; }

   /**
    * Set UserInfo.
    *
    * @param   information.
    */
   public void setUserInfo(UserInfo userInfo) {
      this.userInfo = userInfo;
   }


/** * Get UserInfo. * * @return information. */ public UserInfo getUserInfo() { return userInfo; }


/** * Set password. * * @param password. * * * @struts.form-field * name="LogonForm" * * @struts.form-field * name="NewUserForm" * * @struts.validator * type="required" * msgkey="errors.required" * arg0resource="msg.password" */ public void setPasswords(String passwords) { this.passwords = passwords; }


/** * Get password. * * @return password. */ public String getPasswords() { return passwords; }



   /**
    * Set status.
    *
    * @param   status.
    *
    *
    * @struts.form-field
    *    name="NewUserForm"
    */
   public void setStatus(boolean status) {
      this.status = status;
   }

   /**
    * Get status.
    *
    * @return   status.
    */
   public boolean getStatus() {
      return status;
   }

   /**
    * Set username.
    *
    * @param   username.
    *
    *
    * @struts.form-field
    *    name="LogonForm"
    *
    * @struts.form-field
    *    name="NewUserForm"
    *
    *
    * @struts.validator
    *    type="required"
    *    msgkey="errors.required"
    *    arg0resource="msg.username"
    */
   public void setUsername(String username) {
      this.username = username;
   }

   /**
    * Get username.
    *
    * @return   username.
    */
   public String getUsername() {
      return username;
   }



   /**
    * Set role collections.
    *
    * @param   roles - a collection of Role.
    */
   public void setRoles(Collection roles) {
      this.roles = roles;
   }

   /**
    * Get role collections.
    *
    * @return  a collection of Role.
    */
   public Collection getRoles() {
      return roles;
   }

   /**
    * Add a Role to the role set.
    *
    * @param   role.
    */
   public void addRole(Role role) {
      roles.add(role);
   }




// NewUserForm /** * @struts.form-field * name="NewUserForm" * * */ /* * @struts.validator * type="required" * msgkey="errors.required" * arg0resource="msg.roleName" */ public void setRoleName(String roleName) { this.roleName = roleName; }

   public String getRoleName() {
      return roleName;
   }


/** * @struts.form-field * name="NewUserForm" * * */ /* * @struts.validator * type="required" * msgkey="errors.required" * arg0resource="msg.action" */ public void setAction(String action) { this.action = action; }

   public String getAction() {
      return action;
   }
}



<?xml version="1.0" encoding="UTF-8" ?>
<!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>
  <!--
    Define global validation config in validation-global.xml
  -->
  <formset>
      <form name="UserInfoForm">
              <field property="firstName"
                     depends="required">
                  <msg
                    name="required"
                    key="errors.required"/>

                  <arg0 key="UserInfoForm.firstName"/>
              </field>
              <field property="lastName"
                     depends="required">
                  <msg
                    name="required"
                    key="errors.required"/>

                  <arg0 key="UserInfoForm.lastName"/>
              </field>
              <field property="sex"
                     depends="required">
                  <msg
                    name="required"
                    key="errors.required"/>

                  <arg0 key="UserInfoForm.sex"/>
              </field>
              <field property="idCardNo"
                     depends="required">
                  <msg
                    name="required"
                    key="errors.required"/>

                  <arg0 key="UserInfoForm.idCardNo"/>
              </field>
              <field property="address1"
                     depends="required">
                  <msg
                    name="required"
                    key="errors.required"/>

                  <arg0 key="UserInfoForm.address1"/>
              </field>
              <field property="country"
                     depends="required">
                  <msg
                    name="required"
                    key="errors.required"/>

                  <arg0 key="UserInfoForm.country"/>
              </field>
              <field property="action"
                     depends="required">
                  <msg
                    name="required"
                    key="errors.required"/>

                  <arg0 key="UserInfoForm.action"/>
                  <arg0
                      name="required"
                    key="msg.action"
                  />
              </field>
      </form>
      <form name="LogonForm">
              <field property="passwords"
                     depends="required">
                  <msg
                    name="required"
                    key="errors.required"/>

                  <arg0 key="LogonForm.passwords"/>
                  <arg0
                      name="required"
                    key="msg.password"
                  />
              </field>
              <field property="username"
                     depends="required">
                  <msg
                    name="required"
                    key="errors.required"/>

                  <arg0 key="LogonForm.username"/>
                  <arg0
                      name="required"
                    key="msg.username"
                  />
              </field>
      </form>
  </formset>
</form-validation>


------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user



------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user



------------------------------------------------------- This SF.Net email is sponsored by BEA Weblogic Workshop FREE Java Enterprise J2EE developer tools! Get your free copy of BEA WebLogic Workshop 8.1 today. http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click _______________________________________________ xdoclet-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to