2017-06-02 16 views
0

私はspring MCUコントローラに配列をポストしようとしていますが、不正なリクエストがあります。私は特にこれまでにやっていない配列に問題があります。私はそれがジャクソンのライブラリに問題があるかどうか本当に分かっていません。どんなアドバイスも大歓迎です!AngularJSからSpringMVCコントローラへの配列の投稿方法は?

角度Serivce

app.service('ConfirmacaoService', function ($http, $localStorage) { 

    var usuario = $localStorage.usuarioLogado; 
    var adicionadosNoCarrinho = $localStorage.confirmacaoCarrinho; 

    this.salvarPedido = function (pedido) { 

     var pedidoItem = { 
      usuario: {idUsuario: usuario.idUsuario}, 
      pedido: {idPedido: 0}, 
      jogo: adicionadosNoCarrinho, ///THIS IS THE ARRAY 
      endereco: {idEndereco: 0}, 
      // jogo: {idJogo: 0}, 
      frete: pedido.frete, 
      totalPreco: pedido.totalPreco, 
      precoFinal: pedido.precoFinal 
     }; 

     var $res = $http.post('salvarPedido', pedidoItem); 
     $res.success(function (data) { 
      alert('deu cero', data); 
     }); 
    }; 

}); 

Spring MVCのコントローラ

@RequestMapping(value = "/salvarPedido", method = RequestMethod.POST) 
public @ResponseBody 
PedidoItems salvarPedido(@RequestBody PedidoItems pedidoItem) { 

    dao.salvarItemPedido(pedidoItem); 
    return pedidoItem; 

} 

PedidoItemsモデルクラス

public class PedidoItems { 

    private int idPedidoItem; 
    private Usuario usuario; 
    private Pedido pedido; 
    private List<Jogo> jogo; 
    private Endereco endereco; 
    //private Pagamento pagamento; 
    private double frete; 
    private double totalPreco; 
    private double precoFinal; 

    public PedidoItems() { 

     usuario = new Usuario(); 
     pedido = new Pedido(); 
     jogo = new ArrayList<>(); 

     endereco = new Endereco(); 
    } 

    public List<Jogo> getJogo() { 
     return jogo; 
    } 

    public void setJogo(List<Jogo> jogo) { 
     this.jogo = jogo; 
    } 

    public int getIdPedidoItem() { 
     return idPedidoItem; 
    } 

    public void setIdPedidoItem(int idPedidoItem) { 
     this.idPedidoItem = idPedidoItem; 
    } 

    public Usuario getUsuario() { 
     return usuario; 
    } 

    public void setUsuario(Usuario usuario) { 
     this.usuario = usuario; 
    } 

    public Pedido getPedido() { 
     return pedido; 
    } 

    public void setPedido(Pedido pedido) { 
     this.pedido = pedido; 
    } 

    public Endereco getEndereco() { 
     return endereco; 
    } 

    public void setEndereco(Endereco endereco) { 
     this.endereco = endereco; 
    } 

    public double getFrete() { 
     return frete; 
    } 

    public void setFrete(double frete) { 
     this.frete = frete; 
    } 

    public double getTotalPreco() { 
     return totalPreco; 
    } 

    public void setTotalPreco(double totalPreco) { 
     this.totalPreco = totalPreco; 
    } 

    public double getPrecoFinal() { 
     return precoFinal; 
    } 

    public void setPrecoFinal(double precoFinal) { 
     this.precoFinal = precoFinal; 
    } 
} 

ジョーゴモデルクラス

public class Jogo { 

    private int idJogo; 
    private String nomeJogo; 
    private double preco; 
    private Console console; 

    public Jogo(){ 
     console = new Console(); 
    } 

    public int getIdJogo() { 
     return idJogo; 
    } 

    public void setIdJogo(int idJogo) { 
     this.idJogo = idJogo; 
    } 

    public String getNomeJogo() { 
     return nomeJogo; 
    } 

    public void setNomeJogo(String nomeJogo) { 
     this.nomeJogo = nomeJogo; 
    } 

    public double getPreco() { 
     return preco; 
    } 

    public void setPreco(double preco) { 
     this.preco = preco; 
    } 

    public Console getConsole() { 
     return console; 
    } 

    public void setConsole(Console console) { 
     this.console = console; 
    } 
} 

配列は次のようになります。jogo :Array(2)

+0

あなたは、配列または単にJSONオブジェクトを渡そうとしていますか?コードごとに、JSONオブジェクトを渡そうとしているようですね。 – CrazyMac

答えて

0

を、あなたの要求の適切なコンテンツタイプを持っていることを確認してください。 'application/json'にする必要があります。 Springはリクエストからこの情報を取得し、適切なメッセージハンドラを選択するため、あなたの場合はJackson libでなければなりません。コンテンツタイプが 'application/json'でない場合は、$http paramsに指定することができます。 $httpヘッダの

例:

$http({ 
    method: 'POST', 
    url: 'http://your_url', 
    data: serializedData, 
    headers: { 
     'Content-Type': 'application/json' 
    }}).success(...); 
関連する問題