<html:errors> struts tutorial or example
Here's one: //struts.apache.org/1.3.5/struts-taglib/apidocs/org/apache/struts/taglib/html/package-summary.html#package_description
Here I'm assuming Struts 1. I don't know if it has changed for Struts 2.
You can put an errors.header and errors.footer into your message resources file:
errors.header=<h3><font color="red">Errors:</font></h3><ul>
errors.footer=</ul>
The header and footer are displayed only if the ActionErrors object has any errors in it.
In your Action class, do this:
ActionErrors errors = new ActionErrors();
if (badInput) {
errors.add(ActionErrors.GLOBAL_ERROR,
new ActionError("error.bad.input", badString); // key in messages resource file
// badString will replace {0} in message
}
Then before returning:
saveErrors(request, errors);
In your messages resource file:
error.bad.input=<li>Bad input: '{0}' is invalid.</li>
Now when the <html:errors/>
tag is processed, it will turn into:
<h3><font color="red">Errors:</font></h3><ul>
<li>Bad input: 'xxyyzzz' is invalid.<li>
</ul>
Here's a quick summary. You have an ActionForm
class, say MyForm
:
<form-bean name="myForm" type="myapp.forms.MyForm"/>
You have an Action
class, say MyAction
:
<action path="/insert" type="myapp.actions.MyAction" name="myForm"
input="/insert.jsp" validate="true" />
<forward name="success" path="/insertDone.jsp"/>
</action>
"name" in the action refers to "name" in the form-bean. Because you have validate="true"
your ActionForm
class MyForm
must define validate()
method which will automatically be called:
public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if ((username==null) || (username.length() < 1))
errors.add("username", new ActionError("error.username.required"));
return errors;
}
If it returns an empty ActionErrors object, Struts goes on to call your MyAction.execute(). Otherwise, Struts displays /insert.jsp (because that's the input= parm you gave) and expands the html.errors tag to display your errors from ActionErrors.