public int doStartTag() throws JspException {
// Were any error messages specified?
ActionMessages errors = null;
try {
errors = TagUtils.getInstance().getActionMessages(pageContext, name);
} catch (JspException e) {
TagUtils.getInstance().saveException(pageContext, e);
throw e;
}
if ((errors == null) || errors.isEmpty()) {
return (EVAL_BODY_INCLUDE);
}
boolean headerPresent =
TagUtils.getInstance().present(pageContext, bundle, locale, getHeader());
boolean footerPresent =
TagUtils.getInstance().present(pageContext, bundle, locale, getFooter());
boolean prefixPresent =
TagUtils.getInstance().present(pageContext, bundle, locale, getPrefix());
boolean suffixPresent =
TagUtils.getInstance().present(pageContext, bundle, locale, getSuffix());
// Render the error messages appropriately
StringBuffer results = new StringBuffer();
boolean headerDone = false;
String message = null;
Iterator reports = (property == null) ? errors.get() : errors.get(property);
while (reports.hasNext()) {
ActionMessage report = (ActionMessage) reports.next();
if (!headerDone) {
if (headerPresent) {
message =
TagUtils.getInstance().message(
pageContext,
bundle,
locale,
getHeader());
results.append(message);
}
headerDone = true;
}
if (prefixPresent) {
message =
TagUtils.getInstance().message(
pageContext,
bundle,
locale,
getPrefix());
results.append(message);
}
if (report.isResource()) {
message =
TagUtils.getInstance().message(
pageContext,
bundle,
locale,
report.getKey(),
report.getValues());
} else {
message = report.getKey();
}
if (message != null) {
results.append(message);
}
if (suffixPresent) {
message =
TagUtils.getInstance().message(
pageContext,
bundle,
locale,
getSuffix());
results.append(message);
}
}
if (headerDone && footerPresent) {
message =
TagUtils.getInstance().message(pageContext, bundle, locale, getFooter());
results.append(message);
}
TagUtils.getInstance().write(pageContext, results.toString());
return (EVAL_BODY_INCLUDE);
}
Render the specified error messages if there are any. |