publicclassInterceptorXimplementsInterceptor{publicStringintercept(ActionInvocationinvocation)throwsException{Stringresult=invocation.invoke();//Nesse momento sua action já foi invocada, mais você ainda pode fazer algum tratamento antes de dar um retorno do seu interceptor, ou seja, antes de renderizar a página.returnresult;}publicvoidinit(){}publicvoiddestroy(){}}
Você ainda pode extender a classe AroundInterceptor e implementar o método after(...), só que dessa forma não é mais possível mudar o fluxo da aplicação.
É justamente esse o problema.
Tava pensando que fazendo do jeito que vc postou, dava certo. Ae comecei a ter problemas, e coloquei um Break Point aqui String result = invocation.invoke();.
Quando eu dou um F6 no eclipse, e executa a Action, qnd eu volto pro browser a página já foi exibida.
Eu queria executar a Action, saber o resultado, e depois continuar a execução do Interceptor, e colocar uns dados que poderão ou não ser vistos pelo usuário, dependendo do retorno da action.
Mas dessa maneira que ta o código em cima, não dá certo. Pode ser que eu dando um extends na classe que vc falou, funcione.
Vou testar!
Você deve ter feito algo de errado, pois o retorno que é dado depende do retorno do interceptor. :roll:
smota
Yeah … tem algo errado ai, os interceptors sao todos executados ANTES da execucao do RESULT, mesmo pq qualquer interceptor pode alterar o result.
N
New_Radical
Como usar um interceptor, depois da action ser executada e antes da página ser renderizada?
N
New_Radical
Olá Volnei,
É justamente esse o problema.
Tava pensando que fazendo do jeito que vc postou, dava certo. Ae comecei a ter problemas, e coloquei um Break Point aqui String result = invocation.invoke();.
Quando eu dou um F6 no eclipse, e executa a Action, qnd eu volto pro browser a página já foi exibida.
Eu queria executar a Action, saber o resultado, e depois continuar a execução do Interceptor, e colocar uns dados que poderão ou não ser vistos pelo usuário, dependendo do retorno da action.
Mas dessa maneira que ta o código em cima, não dá certo. Pode ser que eu dando um extends na classe que vc falou, funcione.