[RESOLVIDO]result.include no VRaptor não funciona

21 respostas
Victaum

Salve, Salve galera!

Estou desenvolvendo o meu porjeto final em vraptor, e o result.include não está funcionando, to achando estranho já q é a coisa mais simples do framework.

Eu baixei o projeto blank do site, mas mesmo assim não estou conseguindo.

gostaria de saber se tem como alguem me ajudar.

A solução é que não estava usando dentro do padrão, eu estava usando result.forwardTo(“nome-da-pagina.jsp”) dentro do padrão vai funcionar!

21 Respostas

C

O blank project do site para mim também não funciona, tive que pegar uma versão mais antiga e ai funcionou… não entendo o porque…

Lucas_Cavalcanti

o que exatamente não funcionou? como vc tá usando o result.include? como vc tá colocando na jsp?

Victaum

O result não inclui nada…

utilizei ele da seguinte forma:

Controller

//Declaração no Controller
private final Resut result;

//Dentro do método

result.include("mensagem", "Teste");

JSP

${mensagem}
Lucas_Cavalcanti

sua jsp só tem isso? o resto da jsp aparece?

vc tá com EL habilitada?

Victaum

oq eu fiz,

como eu não tava funcionando e eu tava sem tempo e precisa correr eu instancei o HttpSession e setei o atributo assim… funcionou de boa.

o problema maior agora é, eu não sabia q vc tinha q habilitar o EL como eu faço isso?

Lucas_Cavalcanti

se funcionou com o HttpSession de veria ter funcionado com o result do vraptor… vc tah recebendo o result no construtor, certo?

tente colocar outros objetos e ver se funciona.

Victaum

Brother foi mal na demora da resposta!

eu passo o session no construtor e funciona de boa!

Lucas_Cavalcanti

e o result com outros objetos?

Victaum

com forwardTo funciona

Lucas_Cavalcanti

vc tá fazendo como?

include e mais nada (jsp padrão),

include e redirect,

include e forward

quais não funcionam? vc tá com a última versão do vraptor? tá com sessions habilitadas?

Victaum

eu to colocando o

result.include("mensagem', "Mensagem teste");
result.forwardTo("teste.jsp");

e na jsp

<p>${mensagem}</p>

eu não sei como faço pra saber se os sessions estão habilitados. Mas o HttpSession funfa!

Lucas_Cavalcanti

mas pq vc tá fazendo forward pra uma jsp? por que não usar a padrão?

Victaum

Digamos q peguei um modelo no qual eu segui e tava sendo feito dessa forma…

não me liguei q estava fora do padrão

Lucas_Cavalcanti

e dentro do padrão funciona?

Lucas_Cavalcanti

acho que eu entendi o que está acontecendo…

include antes de redirect funciona, mas só se for redirect pra lógica… algo do tipo:

result.include("msg", "hooooo");

result.redirectTo(UmController.class).umMetodo();

assim funciona, mas redirect pra jsp direto não.

Victaum

Cara dentro do padrão funcionou!

alguma explicação pra não funcionar com o forward ou o redirect!?

pq já fiz a maior parte do projeto usando o session e mudar agora vai ser foda!

tem como mudar o caminho padrão das jsp!?

Lucas_Cavalcanti

a explicação eh que includes não deveriam funcionar em redirects… o vraptor eh quem faz funcionar se vc faz o redirect no padrão dele.

pra mudar o caminho padrão do jsps sobrescreva o pathResolver:

http://vraptor.caelum.com.br/pt/docs/sobrescrevendo-as-convencoes-e-comportamento-do-vraptor/

guilherme_costa1

Lucas Cavalcanti:
a explicação eh que includes não deveriam funcionar em redirects… o vraptor eh quem faz funcionar se vc faz o redirect no padrão dele.

pra mudar o caminho padrão do jsps sobrescreva o pathResolver:

http://vraptor.caelum.com.br/pt/docs/sobrescrevendo-as-convencoes-e-comportamento-do-vraptor/

Lucas,

Tive o mesmo problema com o result.include() aqui, exemplo:

Se uso assim funciona:

@Get("/despesas/{despesa.id}")
	public Despesa mostra(Despesa despesa){
		return dao.carrega(despesa.getId());
	}

Agora se uso assim não funciona:

@Get("/despesas/{despesa.id}")
	public void mostra(Despesa despesa){
		result.include("depesa", dao.carrega(despesa.getId()));
	}

Da segunda forma o objeto Despesa não fica disponível na página jsp.

Tem ideia do que pode ser que esteja acontecendo?

Estou usando VRaptro 3.5.1, baixei o vraptor-blank-project para iniciar o projeto.

Abraço

Lucas_Cavalcanti

vc deu include em depesa, não despesa :wink:

ThiagoInGuj

Estou com uma suspeita de que o result do Vraptor, quando realiza o redirect, nao consegue incluir dois campos de uma mesma classe separadamente. Tenho uma classe Viagem, e nela 2 campos do tipo Vitrine, campos vitrine1 e vitrine2. Quando realizo um include da viagem e entao faco o redirect do vraptor, apenas esses 2 campos nao sao incluídos corretamente, os demais sao.

ThiagoInGuj

Esqueçam o que eu escrevi. O que está ocorrendo é seguinte: Quando no controller eu realizo a validacao com o validator do vraptor, o validator.onErrorUsePageOf() inclui no request o modelo cuja validacao nao passou. Como eu estava incluindo
esse mesmo modelo no result, o modelo que o validator inclui sobrescreve este ultimo. That’s it.

Criado 10 de novembro de 2012
Ultima resposta 20 de mar. de 2014
Respostas 21
Participantes 5