[RESOLVIDO] Problema com redirecionamento no Struts 2

Olá pessoal.

Tenho um Interceptor no Struts 2, cujo objetivo é validar a sessão do usuário, retornando para Action.LOGIN, ou para actionInvocation.invoke(), conforme o caso do objeto usuario ser válido ou não.

A ação referente a Action.Login (“login”), está mapeada da seguinte forma:

[code]…
<global-results>

<result name=“login” type=“redirectAction”>AuthenticationBean_logout</result>
</global-results>

    &lt;action name="AuthenticationBean_*" method="{1}" class="br.com.sitedocliente.sistema.web.bean.AuthenticationBean"&gt;
        &lt;result name="input"&gt;login.jsp&lt;/result&gt;
        ....
    &lt;/action&gt;

…[/code]

O problema que estou encontrando é que o usuário pode estar em qualquer lugar do sistema (ex: edição ou listagem de usuário), e o Struts ao passar pelo Interceptor redireciona para o local atual + “AuthenticationBean_logout.action”. Isto é, se a url correta da action for: http://sitedocliente.com.br/sistema/AuthenticationBean_logout.action o que ele fará quando forem visualizados arquivos internos ao diretório usuario é http://sitedocliente.com.br/sistema/usuario/AuthenticationBean_logout.action

Obs: Indiferentemente de colocar qualquer prefixo no nome da ação, inclusive “/”, ou o namespace do pacote onde a ação se encontra.

Vcs teria ideia do que pode estar acontecendo?

Obrigado!

Claudiomir Zanchetti (Caio)
SCJP 5.0

Olá Pessoal!

Alguém teria alguma pista?

Abraços

Pessoal, a solução do problema é simplesmente adicionar o parâmetro namespace no “result”:

        &lt;global-results&gt;
            &lt;result name="login" type="redirectAction"&gt;
                &lt;param name="actionName"&gt;AuthenticationBean_logout&lt;/param&gt;
                &lt;param name="namespace"&gt;/manager&lt;/param&gt;
            &lt;/result&gt;
        &lt;/global-results&gt;

Fonte: http://struts.apache.org/2.x/docs/redirect-action-result.html