[Resolvido]Como enviar objeto do jsp com o vraptor

Ola gostaria de saber como faço para pegar uma variavel exibida em um jsp ${solicitacao } e envia-la ao back-end com o vraptor

Aqui vc encontra uma solução!

http://vraptor.caelum.com.br/pt/docs/guia-de-dez-minutos/

http://vraptor.caelum.com.br/pt/docs/view-e-ajax/

eu sei como passar objetos do controller para a view e passar da view para o controle utilizando inputs mas não sei como pegar uma variavel que ja esta no jsp fora de um form para envia-la ao controller

O vraptor espera que vc coloque os names dos inputs conforme o seu objeto

ou seja…

<input type="text" name="produto.nome" value="${produto.nome}"

vc precisa apenas colocar o Produto produto no método controler ele msm instancia o Objeto pra vc e add no parametro

Ok,

vc pode fazer assim

${solicitacao } = vc tem o valor solicitante certo?

vc pode mandar ele por ajax assim

var datapost = {"solicitante" : solicitante} (objeto json)

$.ajax({
		url : "urlQueBateNoController",
           	type : "GET, POST....",
		data : dataPost,
		message : {"message" : "Cadastro com sucesso!!!"}
	});

mas amigo minha ideia é enviar um objeto inteiro colocar input por input fica foda.

desculpe o “flood” mas teria algo mais objetivo?

Não há nenhum objeto no vraptor para pescar essa variavel na view não ?

Gabriel, boa tarde…

Para você entender melhor: o servidor não consegue pegar as coisas de um JSP pq o JSP depois vai gerar um HTML, ou seja, o VRaptor não tem como pegar isso. Você vai precisar enviá-lo ao servidor em uma requisição. Existem duas formas de fazer isso. O nosso amigo kadu já te disse como.

Se você quer passar um objeto inteiro e recebê-lo na outra ponta, tome cuidado pois o JSP vai fazer um toString() de todos os objetos que você colocar lá.

Caso seja um objeto mapeado pelo Hibernate, eu sugiro o seguinte:

Crie um Converter do VRaptor que vai receber como dependência o DAO dessa sua entidade e então você passa somente o ID dessa entidade e consegue receber a mesma instância depois em outra requisição. Algo assim:

// JSP
&lt;input type="hidden" name="coordenador" value="${coordenadorQueVeioDoResponse.id}" /&gt;

// Converter
@Convert(Coordenador.class)
public class CoordenadorConverter implements Converter&lt;Coordenador&gt; {

	private final Logger logger = LoggerFactory.getLogger(this.getClass());
	private final CoordenadorDAO coordenadorDAO;

	public CoordenadorConverter(CoordenadorDAO coordenadorDAO) {
		this.coordenadorDAO = coordenadorDAO;
	}

	@Override
	public Coordenador convert(String value, Class&lt;? extends Coordenador&gt; type,
			ResourceBundle bundle) {
		try {
			return coordenadorDAO.get(Long.parseLong(value));
		} catch (NumberFormatException e) {
			logger.error(&quot;Cannot convert '&quot; + value + &quot;' to java.lang.Long.&quot;, e);
			throw e;
		}
	}
}

// Action / Controller
@Get(&quot;/faz/algo&quot;)
public void fazAlgo(Coordenador coordenador){
   // coordenador já vai estar instanciado e com tudo carregado.
}

me desculpa… mas ainda não entendi o que vc realmente quer

EDIT

Ja resolvi o problema fiz um workaround vlw pelo tempo de vocês

não dá pra enviar um objeto inteiro no request pq no browser do cara não existem objetos, só html e texto.

vc tem que enviar campo por campo, ou enviar o id do objeto e recarregar o objeto no banco de dados. Enviar o id é mais comum