I'm trying to validate a sign in form with 2 fileds: email and password.
I'm using standard "required" and "email" validators to check the validity of the email. As far as I can tell from the debugger output all the errors are added under org.apache.struts.action.ERROR key like this:
org.apache.struts.action.ERROR={email=[errors.required]}
The email should exist in the database so there's a verification in SignInAction for that. If the email doesn't exist I add the respecitve ActionMessage
(as ActionError is deprecated):
ActionMessages errors = new ActionMessages();
errors.add("email", new ActionMessage("error.login.not.found"));
saveMessages(request, errors);
This guy is added under org.apache.struts.action.ACTION_MESSAGE key as follows:
org.apache.struts.action.ACTION_MESSAGE={email=[error.login.not.found[]]}
So, when I want to display both errors near my email input field I have to do this:
<!-- deprecated but short and sweet
html:errors property="email" header="errors.header.inline" footer="errors.footer.inline" prefix="errors.prefix.inline" suffix="errors.suffix.inline" /-->
<html:messages id="emailError" property="email">
<span class="error">
<bean:write name="emailError" />
</span>
</html:messages>
<html:messages id="emailError2" property="email" message="true">
<span class="error">
<bean:write name="emailError2" />
</span>
</html:messages>
It doesn't look quite efficient.
Here's a bunch of questions:
1. Am I missing a way of telling html:messages to pick up both errors and messages?
2. Am I missing a way of converting standard validation errors to messages so that they are added upder org.apache.struts.action.ACTION_MESSAGE and are picked up by html:messages with message="true"?
3. ValidatorForm.validate returns ActionErrors and is not deprecated. I don't get it. Can someone enlighten me on that?
I'm on Struts 1.2.8.
Thanks,
Borys
I'm using standard "required" and "email" validators to check the validity of the email. As far as I can tell from the debugger output all the errors are added under org.apache.struts.action.ERROR key like this:
org.apache.struts.action.ERROR={email=[errors.required]}
The email should exist in the database so there's a verification in SignInAction for that. If the email doesn't exist I add the respecitve ActionMessage
(as ActionError is deprecated):
ActionMessages errors = new ActionMessages();
errors.add("email", new ActionMessage("error.login.not.found"));
saveMessages(request, errors);
This guy is added under org.apache.struts.action.ACTION_MESSAGE key as follows:
org.apache.struts.action.ACTION_MESSAGE={email=[error.login.not.found[]]}
So, when I want to display both errors near my email input field I have to do this:
<!-- deprecated but short and sweet
html:errors property="email" header="errors.header.inline" footer="errors.footer.inline" prefix="errors.prefix.inline" suffix="errors.suffix.inline" /-->
<html:messages id="emailError" property="email">
<span class="error">
<bean:write name="emailError" />
</span>
</html:messages>
<html:messages id="emailError2" property="email" message="true">
<span class="error">
<bean:write name="emailError2" />
</span>
</html:messages>
It doesn't look quite efficient.
Here's a bunch of questions:
1. Am I missing a way of telling html:messages to pick up both errors and messages?
2. Am I missing a way of converting standard validation errors to messages so that they are added upder org.apache.struts.action.ACTION_MESSAGE and are picked up by html:messages with message="true"?
3. ValidatorForm.validate returns ActionErrors and is not deprecated. I don't get it. Can someone enlighten me on that?
I'm on Struts 1.2.8.
Thanks,
Borys