我正在尝试将一个数组发布到spring mvc控制器但是我收到了错误的请求。我特别遇到阵列的问题,到目前为止我还没有做过。我真的不知道杰克逊图书馆是否存在问题。任何建议都将受到欢迎!
Angular 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 Controller
@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;
}
}
Jogo模特课
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 :(得分:0)
确保您拥有适当的请求内容类型。它应该是'application / json'。因为Spring从请求中获取此信息并选择正确的消息处理程序,在您的情况下它应该是Jackson lib。如果请求的内容类型不是'application / json',您可以在$http
参数中指定它。
$http
标题的示例:
$http({
method: 'POST',
url: 'http://your_url',
data: serializedData,
headers: {
'Content-Type': 'application/json'
}}).success(...);