【发布时间】:2017-04-12 14:15:16
【问题描述】:
我正在尝试通过 POST 检索一个数字数组,发送到服务器的原始数据是:
bucket2=0&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&buckets%5B%5D=6&bucket1=0&currPlayer=0&bucketID=0
这包含一个数组 buckets = [6, 6, 6, ...],来自 javascript 控制台:
Object { bucket2: 0, buckets: Array[12], bucket1: 0, currPlayer: 0 }
发布我使用以下代码:
$.ajax({
type: "POST",
url: baseUrl + "move",
data: game,
success: function(data) {
// console.log(data);
update(data);
}, error: function(jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
}
});
我的服务器代码是:
@POST
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.APPLICATION_JSON)
@Path("/move")
public String move(@PathParam("currPlayer") int currPlayer,
@PathParam("bucket1") int bucket1,
@PathParam("bucket2") int bucket2,
@PathParam("buckets") List<Integer> buckets,
@PathParam("bucketID") int bucketID){
System.out.println("currPlayer: " + currPlayer);
System.out.println("bucket1: " + bucket1);
System.out.println("bucket2: " + bucket2);
System.out.println("buckets: " + buckets);
System.out.println("bucketID: " + bucketID);
return "";
}
服务器输出为:
currPlayer: 0
bucket1: 0
bucket2: 0
buckets: []
bucketID: 0
为什么没有得到数组值?
编辑:我在创建此线程之前尝试使用@FormParam,但它仍然不起作用
【问题讨论】:
标签: arrays post jakarta-ee jersey jax-rs