Homepage.jsp:
<script type="text/javascript">
var startZArray = new Array();
function add()
{
var startZ = $('#startZ').val();
startZArray.push(startZ);
}
function submitP()
{
$.ajax({
type: "POST",
url:"/horn/rest/main/schedule",
data: startZArray,
success:function()
{alert('worked');}
});
}
</script>
Homepage.java
@POST
@Path("/schedule")
public void tigerMessage(
@Context final HttpServletResponse response,
@Context final HttpServletRequest request) throws Exception
{
String[] myParams = request.getParameterValues("startZArray");
System.out.println(myParams);
}
不幸的是myParams打印出null。我知道内部添加startZArray正在填充。但我不确定数据是否:startZArray是传递它的正确方法。另外我知道泽西岛的网址被点击了,因为我确实看到空打印出来了。有没有人有任何想法?
编辑:
当我这样做时:
[~] curl -i -X POST -d "{\"startZArray\":\"testMessage\"}" http://localhost:8080/horn/rest/main/schedule
HTTP/1.1 204 No Content
Server: Apache-Coyote/1.1
Date: Wed, 24 Apr 2013 20:15:18 GMT
我仍然是null,所以我觉得我的java代码有问题吗?
EDIT2:
我更新了调试submitP()方法:
function submitP()
{
var myarray = ['Element 1', 'Element 2', 'Element 3'] ;
var dataobject = {
postvar: myarray
} ;
$.ajax({
type: "POST",
url:"/horn/rest/main/schedule",
data: dataobject,
success:function()
{
alert('worked');
}
});
}
当我在firebug中运行代码时,输出文章看起来像这样:
Paramaters:
postvar[] Element 1
postvar[] Element 2
postvar[] Element 3
Source:
postvar%5B%5D=Element+1&postvar%5B%5D=Element+2&postvar%5B%5D=Element+3
该帖子的状态为204,并且出于某种原因说“无内容”。
我还尝试将postvar[]
和普通postvar
放入getParameterValues方法,但没有运气。
答案 0 :(得分:1)
您没有使用参数发送数据,因此无法通过startZArray
request.getParameterValues("startZArray");
试试这个 -
$.ajax({
type: "POST",
url:"/horn/rest/main/schedule",
data:{ "startZArray" : startZArray },
success:function()
{alert('worked');}
});
答案 1 :(得分:1)
使用Edit2中的submitP()
在球衣中试试这个
@POST
@Path("/schedule")
public String tigerMessage(
@FormParam("postvar[]") List<String> vars) throws Exception
{
System.out.println(vars)
return ""
}
更新
另一种方法
@POST
@Path("/schedule")
public String tigerMessage(
Form form) throws Exception
{
System.out.println(form);
// Then get parameters from form
return ""
}