Dá pra alterar a configuração do ww2 em runtime? Quero adicionar um novo result em uma action. Alguém já fez ou sabe se é possível? Já pesquisei nos docs, api e forum mas não consegui decifrar se é possível ou não. Existem classes para o caso em http://www.opensymphony.com/xwork/api/ mas não tem nenhuma indicação de uso.
[ww2] RuntimeConfiguration
6 Respostas
Não sei se é possível.
para que vc precisa adicionar um result em runtime?
De qualquer forma vc pode criar o seu próprio result, e customizá-lo…
Bem, era uma idéia para contornar uma situação comum: usuário logado no sistema tem a sessão expirada e faz uma requisição. Ele eh redirecionado a tela de login para se autenticar e logo ao fazer a submissão do login o serviço solicitado anteriormente eh executado.
Até pensei em customizar os resultados, mas como são muitas as possibilidades acho que não ficaria algo legal.
No meu caso tenho um interceptor para verificar se o usuário está logado ou não. Acho que uma outra alternativa seria armazenar invocation.getInvocationContext().getActionInvocation() na sessão do usuário para retomar a chamada depois do login através do invoke(). O que vc acha?
eu acho que com interceptor fica simples e bem legal :-). E suas Actions não precisam saber de nada…
Se a sessão expirou, como você vai guardar alguma coisa nela? hehe
O que você pode fazer é guardar um map no contexto da aplicação com essa informação para cada usuário. Ele sofreria update quando o usuário vai para tela de login via sessionExpired ou fica em branco quando ele sai normalmente.
Pode até guardar o tempo, para esta informação não valer por horas/dias/etc.
Detalhezinho pertinente este… :oops:
edit: pensando um pouquinho mais, qual o problema na sessão ter expirado? Pois no momento que o usuário requisitar uma action - mesmo que sua sessão tenha expirado - uma nova estará disponível concorda?
Ta ficando complicado demais e muita firula para uma coisa tão simples. Solução:
No interceptor de login colocar um parâmetro no request com o nome da action que iria ser invocada. No form de login pego o bendito e uso ele na submissão do login.
Pronto
O problema é se haviam parametros na request anterior hehe