Hi there guys
Wonder if you can help. I am trying to get the struts actionErrors to appear
on my error page.
I can get them working when I use the html:errors tag and specify the exact
error I'm after, however I am now trying to output ALL the errors... with
zero luck so far.
I have added two errors to the actionErrors object in my action like so:
if (true)
{
log.error("MAJOR DEBUGGING !!!");
actionErrors.add("careerPlan.help",
new ActionError
("errors.updatingError", "fingers", "CareerPlan"));
actionErrors.add("careerPlan.help",
new ActionError
("errors.XMLHydration" ));
//request.setAttribute("errors", errors);
VOErrors errors = new VOErrors(actionErrors);
request.setAttribute("errors",errors);
log.debug("Wot is the size of the actionErrors: " +
actionErrors.size());
// XXX this always comes back as 2
// Try just place a string array on request
/*
String a = "this is my first error";
String b = "this is my second error";
String c = "this is my third error";
errors.add(a);
errors.add(b);
errors.add(c);
request.setAttribute("errors", errors);
//XXX this didn't work either XXX
*/
return (mapping.findForward("failure"));
}
The options i've tryed so far are:
a)creating actionErrors, adding it to the request, and then forwarding to
my error page
b)creating a VOErrors, adding the actionErrors to the VO and forwarding
this VO to my error page
c)creating an arrayList of strings called errors, and forwarding to my
error page
When tracing through my action, on leaving the action I can see that there
are two errors in the actionErrors object. However on hitting the jsp page,
and tracing through the html:errors tag - the errors object is always empty.
Heres my jsp:
<%@ page language="java" import="org.apache.struts.action.ActionErrors,
java.lang.*, java.util.*, au.com.eclipsegroup.egem.valueObject.VOErrors" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
%>
<html>
<head>
<title>oops in gEm!</title>
<script language="JavaScript"
src="../../static/js/rollUp.js"></script>
<link rel="stylesheet" href="../../static/css/default.css"
type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0"
marginwidth="0" marginheight="0">
<!XXXX DO i even need a form been? ... or can i just place the
actionErrors in the request and then use the html:errors tag ???>
<html:form name="errors" scope="request"
type="au.com.eclipsegroup.egem.valueObject.VOErrors"
action="/roleTypeCheck.do">
<!-- Top error banner - got the link back to the homepage
-->
<jsp:include page="includes/99_errors_nav_top.jsp"/>
<table class="table" border="0" cellspacing="0"
cellpadding="0" align="center">
<tr>
<td bgcolor="fed267" class="normal">
The following error(s) have occured - please fix or contact the system
administrator for help. </td>
</tr>
<tr>
<td bgcolor="fed267" class="error">
<!-- XXX debuggin -->
<% if
(request.getAttribute("errors") != null)
{
ActionErrors
e = (ActionErrors) request.getAttribute("errors");
if (e !=
null)
{
int
size = e.size();
%>
<!--XXXX
this always comes back as 0 XXX -->
ErrorSize =
<%=size%>
<%
}
}
else
{ %>
Errors is
null
<% } %>
<!-- Think this is all i
need -->
<html:errors
name="errors"/></td>
<!--html:errors
name="errors" property="careerPlan.help"/></td -->
</tr>
Is there something i'm missing here? Why does the errors attribute (whether
it's an array of strings, an actionError object) always seem to lose it's
value on hitting the jsp page.
Any help would be great. Cheers
Giles
***********Confidentiality/Limited Liability Statement***************
Have the latest business news and in depth analysis delivered to your
desktop. Subscribe to "Insights", Deloitte's fortnightly email
business bulletin . . .
http://www.deloitte.com.au/preferences/preference.asp
This message contains privileged and confidential information intended
only for the use of the addressee named above. If you are not the
intended recipient of this message, you must not disseminate, copy or
take any action in reliance on it. If you have received this message
in error, please notify Deloitte Touche Tohmatsu immediately. Any
views expressed in this message are those of the individual sender,
except where the sender specifically states them to be the views of
Deloitte.
The liability of Deloitte Touche Tohmatsu, is limited by, and to the
extent of, the Accountants' Scheme under the Professional Standards
Act 1994 (NSW).
The sender cannot guarantee that this email or any attachment to it
is free of computer viruses or other conditions which may damage or
interfere with data, hardware or software with which it might be used.
It is sent on the strict condition that the user carries out and relies
on its own procedures for ensuring that its use will not interfere with
the recipients systems and the recipient assumes all risk of use and
absolves the sender of all responsibility for any consequence of its use.