Olá a todos, estou fazendo um estudo sobre as annotations do struts 2, mas até agora, nenhuma das quais eu testei, faz oque deveria fazer…
Agora estou com um outro problema com as Annotations, e a bola da vez é a @Before.
Oque acontece é o seguinte, fiz a seguinte classe:
public abstract class BaseRdcompAction extends ActionSupport {
private static final long serialVersionUID = -8152162540645757675L;
@Before
public void isAuthorized(){
System.out.print("**************** Autorizado **********************");
}
}
Ela é uma classe abstrata que todas as outras actions do sistema vão extender, até ai tudo bem.
Criei uma outra classe:
public class Teste extends BaseRdcompAction{
public Teste(){}
private static final long serialVersionUID = 5061655250991884388L;
public String execute() {
return SUCCESS;
}
}
Como vcs podem reparar, ela extende BaseRdcompAction.
Certo, tudo muito bonito…
Agora o problema:
A annotation @Before não faz oque deveria fazer, que é executar o método antes de qualquer outro método da action.
como diz a propria documentação do Struts 2:
Marks a action method that needs to be executed before the main action method. ( link: http://struts.apache.org/2.0.9/struts2-core/apidocs/com/opensymphony/xwork2/interceptor/annotations/Before.html
tentei usar o priority da annotation @Before mas tb não adiantou…
alguem tem idéia de oque está acontecendo???
Struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- habilita o uso de outros métodos de action internamente na classe action
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="false" />
-->
<package name="actions" namespace="/actions" extends="struts-default">
<action name="Teste" class="br.com.rdcomp.actions.principal.Teste">
<result>/jsp/index.jsp</result>
</action>
</package>
</struts>
Aguardo Muitas
respostas
Obrigado.