-
Notifications
You must be signed in to change notification settings - Fork 347
Description
Percebi um comportamento estranho quando tento fazer uma busca no backend mandando parametros.
Por exemplo, tenho meu objeto filtros que esta da seguinte maneira:
{usuario:'', email:'', perfil:{id:'', nome:''}}
em caso do mesmo estar preenchido ficara:
{perfil:{id:'1', nome:'adm'}}
Quando vou mandar ele pro backend, possuo um objeto busca:
public class BuscaUsuario {
private String email;
private String usuario;
private Perfil perfil;
...
}
Meu metodo recebe esse parametro busca:
@Get("/buscar")
public Pagina<Usuario> buscar(BuscaUsuario busca) {
teoricamente o envio do parametro para o backend deveria ser:
UsuarioService.buscar(filtros ).$promise.then ...
porem se eu tento enviar o mesmo objeto que usei no ng model dos campos, o backend recebe como nulo.
mesmo se eu colocar
UsuarioService.buscar({'busca': filtros}).$promise.then
entao basicamente estou tendo que fazer
for (var p in filtros) {
parametros['busca.' + p] = filtros[p];
if(angular.isObject(filtros[p])) {
for(var pObject in filtros[p]){
parametros['busca.'+pObject+'.' + pObject] = filtros[p][pObject];
}
}
}
e colocar essa string 'busca.' ou busca.nomeDoObjeto, no caso perfil, no json de busca, estou fazendo algo errado que o vraptor nao consegue identificar meu objeto enviado?
no network do navegador, o objeto é enviado normalmente pela requisicao se eu nao mando com esse 'busca.usuario' por exemplo mas o backend nao recebe