VRaptor usando dynamic include

3 respostas
marciocamurati

Bom dia,

Estou utilizando o VRaptor em um projeto e teremos a necessidade de fazer chamadas via includes ( <jsp:include… /> ) a alguns métodos das Logics para trazer um template já preenchido de acordo com a implementação, utilizando ele padrão como em toda chamada ele realiza um forward ou redirect não é possivel.

Analisei a estrutura/funcionamento e fiz alguns testes gerando um wrapper para controlar determinadas Logics, mas como o outinjection e feito em outra camada não é possivel nessa camada fazer o render do template e retornar no response. A unica maneira dentro da estrutura do framework que achei para solucionar essa necessidade é a implementação de um novo View Manager, filtrando por uma determinada annotation.

Essa solução funciona sem problemas, mas é necessário fazer a implementação direto no CORE e inclusive implementar o “filtro” para esse manager hardcode no DefaultViewLocator.

A pergunta é, existe alguma forma de adicionar programaticamente um novo View Manager no VRaptor?

[]s

3 Respostas

Rafael_Steil

Sim:

WebApplication app = (WebApplication)this.context.getAttribute("webApplication");
app.setViewManager(novoViewManager);
this.context.setAttribute(ViewManager.class.getName(), viewManager);
this.context.setAttribute("webApplication", app);

Onde “this.context” eh o ServletContext.

Rafael

marciocamurati

Então, mas nesse caso eu não estaria substituindo a inicialização default que usa o RegexViewManager(…) por um outro ao invés de adicionar um novo para ser usado em determinadas situações?

[]s

Rafael_Steil

Estenda o padrao do vraptor e adicione o codigo que voce precisa :slight_smile:

Rafael

Criado 9 de junho de 2008
Ultima resposta 9 de jun. de 2008
Respostas 3
Participantes 2