B
Brian O. Bush
All.
I have a login jsp page, and when i first access the login jsp page
(below), the validation errors are displayed as if someone had already
submitted the form. 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. BTW, I have already
shift-reloaded the form to make sure it wasn't a caching issue.
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>
....
<htmlassword 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));
I have a login jsp page, and when i first access the login jsp page
(below), the validation errors are displayed as if someone had already
submitted the form. 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. BTW, I have already
shift-reloaded the form to make sure it wasn't a caching issue.
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>
....
<htmlassword 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));