I would like to be able to customize the output when an exception is thrown with 
minimal or no extra overridden classes.  My struts config (1.1) config file looks like 
this:

....

<global-exceptions>
<exception 
    key="error.persistence.create" 
    type="javax.ejb.CreateException" 
    path="/tmpl_main.jsp?page=/error/syserror.jsp"></exception>
<exception 
    key="error.http.methodnotsupported" 
    type="javax.mail.MethodNotSupportedException" 
    path="/tmpl_main.jsp?page=/error/syserror.jsp"></exception> 
<exception 
    key="error.naming.namenotfound" 
    type="javax.naming.NamingException" 
    path="/tmpl_main.jsp?page=/error/syserror.jsp"></exception>
<exception 
    key="error.servlet.illegalparameter" 
    type="com.je.servlet.IllegalParamsException" 
    path="/tmpl_main.jsp?page=/error/syserror.jsp"></exception>
</global-exceptions>


The properties file looks like this:

errors.header=The following system errors occurred:<ul>
errors.footer=</ul>
error.persistence.create=An error occurred attempting to create a database record
error.http.methodnotsupported=This type of request is not supported for this URL
error.naming.namenotfound=Lookup failed with naming service
error.servlet.illegalparameter=A required field or parameter is missing for the request


The syserror.jsp file is simply:

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<TABLE border="0" cellpadding="5">
<TR>
<TD><html:errors bundle="systemerrorbundle" /></TD>
</TR>
<TR>
<TD></TD>
</TR>
</TABLE>

The above does work.  But I only get the properties file message printed.  I would 
like to do something like this:

error.servlet.illegalparameter=A required field or parameter is missing for the 
request {0}

so that I can dynamically generate a message specific to the error.  In this case I 
want to display whatever field is identified by the exception. So if the exception is 
thrown like:

throw new IllegalParamsException("fieldXYZ is missing");

I would like to see "A required field or parameter is missing for the request 
'fieldXYZ is missing' "
Can I do this 100% in a declaritive manner?  Or how can I pull this off.

thanks

Reply via email to