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();
}
<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>