[Resolvido]Undefined vindo do Vraptor

0 respostas
G

RESOLVIDO !

Esse problema foi corrigido adicionado o .recursive() ao comando serialize()

Olá amigos estou tendo problemas com meu código.

Seguinte eu tenho um input que toda vez que os dados deles são alterados ele cria um evento com javascript e recebe por Json uma lista de SubAtividades do Vraptor.

O problema é o seguinte quando eu estou visualizando atributos diretos da classe ele exibe ex:

subatividade.descricao

Mas quando é sub atributos ele não exibe ex:

subatividade.ativ.descricao

como deveria proceder ?

Código:

JavaScript

$('#descricao')
		.on(
				'change',
				function() {
					var desc = $(this).val();
					$
							.ajax({
								url : urlFiltro,
								data : {
									descricao : desc
								},
								type : 'get',
								dataType : 'json',
								success : function(subatividade) {
									Alert(subatividade[1].atividade.desc);
									var options = [];
									for ( var i = 0; i < subatividade.length; i++) {
										options.push('<tr>');
										options.push('<td>'
												+ subatividade[i].idSub
												+ '</td>');
										options
												.push('<td>'
														+ subatividade[i].ativ.descricao
														+ '</td>');
										options.push('<td>'
												+ subatividade[i].descricao
												+ '</td>');
										options.push('<td>'
												+ subatividade[i].status
												+ '</td>');
										options
												.push('<td><a href="../documentacao/download?desc='
														+ subatividade.doc.descricao
														+ '">Baixar</a></td>');
										options.push('<td><a href="edita?id='
												+ subatividade.idSub
												+ '">Editar</a></td>');
										options.push('</tr>');
									}
									$('#tabela').empty().append(
											options.join(''));
								}
							});

				});

Java

@Administrador
	@Restrito
	@Get("/ajax/FiltroSubAtividade/")
	public void carregaSubAtividade(String descricao) {
		List<Subatividade> subAtividade = new ArrayList<Subatividade>();
		if (descricao == null) {
			subAtividade = new SubatividadeDao().listaTudo();
		} else {
			subAtividade = new SubatividadeDao().listaSubPorDesc(descricao);
		}
		result.use(Results.json()).withoutRoot().from(subAtividade).serialize();
	}
JSP
<div class="container well">
	<table class="table table-bordered">
		<thead>
			<tr>
				<th>Código</th>
				<th>Atividade</th>
				<th><input type="text" class="span2" id="descricao"
					name="subatividade.descricao" placeholder="Descrição"></th>
				<th>Status</th>
				<th>Documento</th>
				<th>Ação</th>
			</tr>
		</thead>
		<tbody id="tabela">
		</tbody>
	</table>
	<script>
		var urlFiltro = '<c:url value="/ajax/FiltroSubAtividade/" />';
	</script>
</div>
Criado 11 de janeiro de 2013
Respostas 0
Participantes 1