[RESOLVIDO] Problema com redirecionamento no Struts 2

2 respostas
caiozanchetti

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:

...
        <global-results>
            ...
            <result name="login" type="redirectAction">AuthenticationBean_logout</result>
        </global-results>
...

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

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

2 Respostas

caiozanchetti

Olá Pessoal!

Alguém teria alguma pista?

Abraços

caiozanchetti

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

<global-results>
            <result name="login" type="redirectAction">
                <param name="actionName">AuthenticationBean_logout</param>
                <param name="namespace">/manager</param>
            </result>
        </global-results>

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

Criado 2 de fevereiro de 2010
Ultima resposta 3 de fev. de 2010
Respostas 2
Participantes 1