Customização de paginas de erro no Struts 2

Olá Pessoal,

Estou querendo customizar as páginas de erro da minha aplicação que utiliza o Struts 2.
Eu tentei utilizar o global-results em conjunto com o global-exception-mappings, mas não deu certo.

Alguem já fez isso??

Segue o meu struts.xml:

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

<struts>
    <constant name="struts.objectFactory" value="spring" />
    <constant name="struts.devMode" value="false" />
    <constant name="struts.enable.DynamicMethodInvocation" value="true" />
	<constant name="struts.i18n.encoding" value="UTF-8" />
	  
    <package name="palPackage" extends="jcaptcha4struts2-default">
		
		<result-types>
		  	<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>		  	
		</result-types>		
	
		<action name="principal">
            <result name="success" type="tiles">principal</result>
		</action>
		
        <action name="perfilSave" class="br.com.xpto.xxx.frontend.action.PerfilAction" method="save">
        	<interceptor-ref name="fileUpload">
        		<param name="maximumSize">500000</param>
        		<param name="allowedTypes">
        			image/gif,image/jpeg,image/png
        		</param>
        	</interceptor-ref>
        	<interceptor-ref name="basicStack"/>
            <result name="success" type="tiles">perfilList</result>
        </action>        		 
    </package>
       
	<package name="palAdminPackage" namespace="/admin" extends="struts-default">
		
		<result-types>
		  	<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>		  	
		</result-types>			
		
		<global-results>
			<result name="erro_geral2">/admin/erro.jsp</result>
		</global-results>
		
		<global-exception-mappings>
			<exception-mapping exception="java.lang.Exception" result="erro_geral2" />
			<exception-mapping exception="com.microsoft.sqlserver.jdbc.SQLServerException" result="erro_geral2" />
			<exception-mapping exception="org.springframework.transaction.TransactionSystemException" result="erro_geral2" />
			<exception-mapping exception="javax.servlet.ServletException" result="erro_geral2" />						
		</global-exception-mappings>				
    </package>   
      
</struts>

Só para completar, essa aplicação possui um frontend, para o usuário final e um backend, para os administradores.
Eu gostaria de customizar a página de erro diferente para cada um.

Só que, mesmo com as configurações no XML acima, um erro 500 explode com o todo os detalhes na tela.

Utilizando o web.xml, eu até consegui configurar uma pagina de erro… mas somente 1 pagina de erro, igual para o frontend e o backend, mas não era isso que eu queria.

Se alguem puder me ajudar, ficarei muito agradecido.OK

Obrigado,
Abraços,
Max

Qual a mensagem de erro?

Qualquer uma…

Por exemplo, na Action, vou acessar alguma propriedade de um objeto que está nulo, sendo assim, vai estourar um Exception, um erro 500 no navegador…

Eu poderia colocar um try catch na action ou verificar se o objeto está nulo… mas seu não quiser fazer isso, como eu faço para que o Struts identifique que ocorreu esse erro e redirecione para uma outra pagina?

Poderia colar o código da Action que lança a exception e onde ela está mapeada no seu struts.xml, já ajuda a analisar o que pode estar acontecendo.
Pois o mapeamento do global-results e do global-exception-mappings está certinho.