vRaptor Json + List

3 respostas
Fmgasparino

Pessoal, minha lista esta retornando atributos como Undefined.
Podem me ajudar a encontrar o erro?

No controller:

@Path("/paciente/busca/{paciente.nome}")
	public void busca(Paciente paciente) {
		List<Paciente> pacientesProcurado = pacienteDao.buscaPacientes(paciente.getNome());
		result.use(json()).from(pacientesProcurado).serialize();
	}

No DAO:

public List<Paciente> buscaPacientes(String nome){
		Criteria consultaPacientes = this.session.createCriteria(Paciente.class);
		consultaPacientes.add(Restrictions.like("nome", nome, MatchMode.ANYWHERE));
		
		return consultaPacientes.list();
		
		
	}

No JS:

<script type="text/javascript">
function busca(nome) {
	$.getJSON('<c:url value="/paciente/busca/" />' + nome, function(json) {
		for(var paciente in json.list){
		alert(paciente.nome);
		}
	})
}
</script>

3 Respostas

D

talvez isso possa te ajudar:

<script type="text/javascript">
function busca(nome) {
	$.getJSON('<c:url value="/paciente/busca/" />' + nome, function(json) {
		for(var paciente in json){
   		      alert(json[paciente].nome);
		}
	})
}
</script>

Eu não sei se vai ter alguma implicação, estou usando gjson ao inves do padrão xstream para serealizar os objetos, talvez aja diferença.
Mais no meu caso, da forma que esta ai acima, funcionou pra mim.

Lucas_Cavalcanti

o jeito certo de fazer no lado do javascript é:

for (var i in json.list) {
    var paciente = json.list[i];
    //o que vc tinha feito antes...
}
Fmgasparino

Lucas Cavalcanti:
o jeito certo de fazer no lado do javascript é:

for (var i in json.list) {
    var paciente = json.list[i];
    //o que vc tinha feito antes...
}

Funcionou pessoal!, valeu Lucas.

Criado 26 de outubro de 2010
Ultima resposta 27 de out. de 2010
Respostas 3
Participantes 3