Request.getAttribute() em controller vRaptor

5 respostas
T

Boa Tarde,

Estou desenvolvendo uma aplicação em que o usuário preenche um formulário para geração de um documento.
Durante este cadastro, o usuário pode ainda relacionar este documento à várias demandas pré-existentes para que ele caia no seu histórico de providências adotadas.
Para fazer este relacionamento, o usuário abre uma fancybox, onde ele pode consultar e selecionar em checkboxes as demandas que ele
desejar armazenando-as em uma lista num atributo de request da jsp.

Feito isto o usuário deve submeter o formulário a um método do controller vRaptor,
onde o documento é persistido no banco e ao mesmo tempo são inseridos registros no histórico de cada demanda relacionada.

O problema é:
Não estou conseguindo pegar o attributo de request no método do controller dando um request.getAttribute(“xxx”);

Sendo que consigo pegar os attributo de sessão normalmente com request.getSession().getAttribute(“XX”);

Gostaria de saber se o vRaptor tem alguma restrição para dar um get nos attributos de request…

PS.: Eu não poderia deixar esta lista na sessão pois se o usuário fosse fazer dois documentos simultaneamente ia misturar todos os relacionamentos.

De antemão agradeço a atenção!
Att.,
Tatieures Gomes.

5 Respostas

Lucas_Cavalcanti

não tem nenhuma restrição… o atributo está no request? onde você colocou isso? vc precisa mesmo usar um atributo do request? não poderia ser um @Component?

T

Eu coloquei o atributo no request com EL na jsp.
Após algumas tentativas resolvi fazer um teste bem simples e nem assim deu certo:

Coloquei na jsp:

<c:set var=“teste” value=“Deu certo!” scope=“request”></c:set>

E no método do controller:

String teste = (String) request.getAttribute(“teste”);
System.out.println(teste);

E ele imprime null.

Lembrando que ele pega os atributos de sessão normalmente.
Será que o problema está na injeção automática do HttpServletRequest? Talvez ele esteja reinstanciando o request…
Alguma dica quanto a isso?

Ah, não tinha pensando nessa hipótese de criar um componente… e ela pode sim ser muito viável.
Como eu faria para pegar esse componente na jsp, populá-lo com ajax e depois submeté-lo ao controller?

Grata,

Lucas_Cavalcanti

só tem um problema na sua abordagem: o controller roda ANTES da jsp, então não tem como o controller acessar variáveis criadas na jsp.

pq vc precisa fazer essa lógica na jsp, e não no controller?

T

Hmm! Que vacilo, hein?!
Eu pensava que era bilateral… que eu tanto poderia acessar uma variável criada no controller/servlet na jsp como o contrário. =/

Deixa eu ver se consigo explicar pq eu preciso manter uma lista na página:

Na tela eu tenho um formulário para o usuário criar um documento no sistema (um ofício, por exemplo).
O usuário preenche todos os campos (destinatário, conteúdo, etc.) e indica que tópicos/demandas estão relacionados ao documento.
O intuito de relacionar estes tópicos é que, quando gerado, o documento caia automaticamente no histórico destes tópicos.

Em resumo, o usuário consulta os tópicos previamente cadastrados no sistema e vai setando os que ele quer relacionar ao documento
durante o preenchimento do formulário e depois submete tudo ao método responsável por salvar o documento.

Obs.: Eu não posso colocar essa lista no session, pq se o cara resolver abrir duas páginas de cadastro de documento a lógica já era total!
E agora eu não sei como posso fazer isso.

Eu consegui ser clara? Alguma sugestão?

Lucas_Cavalcanti

vc não vai submeter no formulário os dados?

só passar como parâmetros do método do controller.

Criado 17 de fevereiro de 2012
Ultima resposta 23 de fev. de 2012
Respostas 5
Participantes 2