# Struts - ErrorHandling



## bygones (19. Jul 2004)

Hi,

ich will eigentlich nur eine Exception die in einer Struts Action geworfen wird auf einer jsp seite anzeigen lassen....
Das Problem ist dass ich ständig 

```
[ServletException in:/pages/error.jsp] Cannot find bean error in any scope'
```
erhalte

in der Action habe ich folgendes:

```
if ( !myErrors.isEmpty() ) {
                myErrors.clear();
            }
            myErrors.add( "error", 
                new ActionError( mr.getMessage("displayAction.noNetwork", singletons ) ) );
            saveErrors( request, myErrors );
            return mapping.findForward( Constants.ERROR );
```
d.h. ich speicher die Action in _myErrors_ (ist vom Typ ActionErrors).
es wird weitergeleitet auf folgende jsp:

```
<%--
  - Displays an error message stored in the struts framework.
  --%>

<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/tld/struts-html.tld"  prefix="html" %>
<%@ taglib uri="/WEB-INF/tld/struts-bean.tld"  prefix="bean" %>
<%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic" %>

<h1><font color="red">Validation Error</font></h1>
You must correct the following error(s) before proceeding:
<logic:messagesPresent>
    <ul>
         <html:messages id="error">
            <%-- If the filter is false, it prevent bean:write to convert HTML to text --%>
            [*]<bean:write name="error" filter="false" />
         </html:messages>
    [/list]
</logic:messagesPresent>
</hr>
```

sieht jemand was das Problem ist ????


----------



## mpenke (19. Jul 2004)

Hi,

hast Du mal den passenden Auszug aus der struts-config.xml?


----------



## bygones (20. Jul 2004)

danke schonmal für die antwort. ich wüsste zwar nicht warum das struts-config.xml helfen soll, aber naja:
Constants.ERROR is gleich "error" wird also auf das mine.error.layout weitergeleitet - was unteranderem die angebene jsp beinhaltet...

```
<?xml version="1.0" encoding="ISO-8859-1" ?>

<!DOCTYPE struts-config PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
          "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">

<struts-config>
	
	
	<global-forwards>
		<forward name="start" path="/do/welcome"/>
		<forward name="error" path="mine.error.layout"/>
	</global-forwards>
	
	<action-mappings>
		<action path="/display" 
			type="uk.ac.ebi.intact.application.mine.struts.controller.DisplayAction" 
			name="display" scope="request">
			<forward name="success" path="mine.result.layout"/>
		</action>
		<action path="/search" 
			type="uk.ac.ebi.intact.application.mine.struts.controller.SearchAction" 
			name="search" scope="request">
			<forward name="success" path="/do/display"/>
			<forward name="ambiguous" path="mine.ambiguous.layout"/>
		</action>
		
		<action path="/welcome" 
			type="uk.ac.ebi.intact.application.mine.struts.controller.WelcomeAction" 
			scope="request" name="welcome">
			<forward name="success" path="mine.welcome.layout"/>
		</action>
	</action-mappings>
	
	<message-resources parameter="config.Struts"/>
	
	<!--
        Add multiple validator resource files by setting the pathnames property
        with a comma delimitted list of resource files to load.
    -->
	<plug-in className="org.apache.struts.tiles.TilesPlugin" >
		<set-property property="definitions-config" 
			value="/WEB-INF/tiles-defs.xml"/>
		<set-property property="moduleAware" value="true" />
	</plug-in>
</struts-config>
```


----------



## mpenke (21. Jul 2004)

Hi,

ja, sorry, das mit der stuts-config.xml war ein denkfehler von mir. Bitte nix für ungut.

Bist Du Dir denn sicher, dass der ActionError auch "korrekt" angelegt werden kann? Wir hatten hier schon mal so was ähnliches, da lag es schlicht und ergreifend daran, dass der ActionError nciht angelegt werden konnte (Fehlender Eintrag i ndem Respurce-Bundle). Denn anscheinend kann er ja das <logic:messagesPresent> richtig erkennen, er geht also rein...

Ansonsten habe ich auch erst mal keine Idee. Da muss ich erst noch was Probieren, bevor ich wieder so ins Klo greife...


----------

