Olá pessoal,
Estou usando Struts 2 em meu projeto e estou trabalhando com invocação dinâmica de métodos na minha action.
O que acontece é que quando ocorre uma exceção de runtime, por exemplo, uma exceção java.lang.UnsupportedOperationException,
em um método invocado dinâmicamente, ou seja, qualquer um exceto o método execute(), o mecanismo de manipulação de
exceções do Struts 2 não redireciona o result para a página que eu defini.
Segue abaixo para maior clareza um snippet do meu arquivo struts.xml:
<action name="*crisis" class="fend.config.CrisisAction" method="{1}">
<exception-mapping result="fail" exception="java.lang.Exception"/>
<result name="success">/testCrisis.jsp</result>
<result name="dummy">/dummy.jsp</result>
<result name="fail">/error.jsp</result>
<interceptor-ref name="configStack"/>
</action>
Para testar, por exemplo, eu lancei uma exceção em um desses métodos dinânimos, digamos, por exemplo, método view().
Logo, para chamá-lo sigo para http://localhost:8080/app/viewcrisis.action
Assim, o struts deveria redirecionar para o result de name “fail”, renderizando a página error.jsp, mas não ocorre e abre a
página de nome “success” testCrisis.jsp.
Quando eu lanço a mesma exceção no método execute(), o struts redireciona para a página de erro corretamente.
O que foi que eu deixei passar?
Se alguém puder me ajudar agradeço muito, pois estou empacado nisso.
Abraços.