Tomcat/Struts: simple login form shows errors when accessed 1st time

From: Brian O. Bush (brianobush_at_yahoo.com)
Date: 01/08/04

  • Next message: Brian O. Bush: "Re: Tomcat/Struts: simple login form shows errors when accessed 1st time"
    Date: 8 Jan 2004 01:41:29 -0800
    
    

    All.
    I have a login jsp page, and when i first access it the errors are
    displayed. I thought that the bean was only validated upon submit? Is
    there something else going on with the loginForm bean that i have
    defined in the struts-config.xml. Another page I have does the same
    thing..., and everything works fine, except for the fact that the user
    sees error messages prior to doing anything.

    Any help would be great!

    Thanks, Brian

    ----------------------------------------------------------------
    login.jsp:

    ...
    <html:form action="/login" focus="username">
    ...
    <html:text property="username" size="24" maxlength="18"/>
    <html:errors property="username"/></td>
    ...
    <html:password property="password" size="24" maxlength="18"
                            redisplay="false"/>
    <html:errors property="password"/></td>
    ...
    <html:submit><bean:message key="button.submit"/></html:submit>
    </html:form>

    ----------------------------------------------------------------
    validation.xml:

    <form-validation>
       <formset>
           
          <form name="loginForm">
                  <field property="username"
                           depends="required, minlength, maxlength,
    email">
                    <arg0 key="forms.login.username"/>
                    <arg1 key="${var:minlength}" name="minlength"
                          resource="false"/>
                    <arg2 key="${var:maxlength}" name="maxlength"
                          resource="false"/>
                    <var>
                         <var-name>maxlength</var-name>
                         <var-value>16</var-value>
                    </var>
                    <var>
                         <var-name>minlength</var-name>
                         <var-value>3</var-value>
                    </var>
                  </field>

    ...
          </form>
       </formset>
    </form-validation>

    ----------------------------------------------------------------
    struts-config.xml:
    <form-beans>
       <form-bean name="loginForm"
                  type="org.apache.struts.validator.DynaValidatorForm">
         <form-property name="username" type="java.lang.String"/>
         <form-property name="password" type="java.lang.String"/>
       </form-bean>
    </form-beans>
    ...
            <action path="/login"
                    type="com.blah.actions.LoginAction"
                    input="main.loginForm"
                    scope="session"
                    name="loginForm">
                    <forward name="next" path="index" />
            </action>
    ----------------------------------------------------------------
    com.blah.actions.LoginAction:

    execute(...){
    ...
    if (valid) {
      HttpSession session = request.getSession();
      if (session != null) {
        session.setAttribute(Constants.USER_KEY, user);
      }
    } else {
      errors.add(ActionErrors.GLOBAL_ERROR,
        new ActionError("action.error.login"));
      return(mapping.getInputForward());
    }
    ...
    return(mapping.findForward(Constants.NEXT));


  • Next message: Brian O. Bush: "Re: Tomcat/Struts: simple login form shows errors when accessed 1st time"