REST @FormParam 值为空
REST @FormParam values are null
我在html
中有以下内容
<form name="myform" method="POST">
<input type="text" id="products" name="products" />
</form>
function myForm() {
var url = 'rest/products/details/';
var formData = $("#myform").serializeArray();
$.ajax({
url: url,
type: 'POST',
contentType : "application/x-www-form-urlencoded",
dataType: 'json',
data: formData,
success: function (data) {
//callfunc(data);
}
});
}
在Java服务器端我有以下内容
@POST
@Path("/details")
public List<Product> findProducts(@FormParam("products") String products) {
.....
.....
log.info("prod "+products); --> getting null
出于某种原因,即使我从 html 传递了正确的值,产品仍为空。这可能是什么原因?
尝试Consumes
注释
@POST
@Path("/details")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public List<Product> findProducts(@FormParam("products") String products) {
.....
.....
function myForm() {
var url = 'rest/products/details/';
var formData = "products=asasa" ;
$.ajax({
url: url,
type: 'POST',
contentType : "application/x-www-form-urlencoded",
dataType: 'json',
data: formData,
success: function (data) {
//callfunc(data);
}
});
}
试试这个并删除@consumes 注释。问题出在 jquery 的 $("#myform").serializeArray()
函数中。
问题很愚蠢,我使用的是名称而不是 ID,这导致所有表单元素在服务器端都为空。我已经改成
<form id="myform" method="POST">
效果不错
不过
<form name="myform" method="POST">
无效。
我在html
中有以下内容<form name="myform" method="POST">
<input type="text" id="products" name="products" />
</form>
function myForm() {
var url = 'rest/products/details/';
var formData = $("#myform").serializeArray();
$.ajax({
url: url,
type: 'POST',
contentType : "application/x-www-form-urlencoded",
dataType: 'json',
data: formData,
success: function (data) {
//callfunc(data);
}
});
}
在Java服务器端我有以下内容
@POST
@Path("/details")
public List<Product> findProducts(@FormParam("products") String products) {
.....
.....
log.info("prod "+products); --> getting null
出于某种原因,即使我从 html 传递了正确的值,产品仍为空。这可能是什么原因?
尝试Consumes
注释
@POST
@Path("/details")
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
public List<Product> findProducts(@FormParam("products") String products) {
.....
.....
function myForm() {
var url = 'rest/products/details/';
var formData = "products=asasa" ;
$.ajax({
url: url,
type: 'POST',
contentType : "application/x-www-form-urlencoded",
dataType: 'json',
data: formData,
success: function (data) {
//callfunc(data);
}
});
}
试试这个并删除@consumes 注释。问题出在 jquery 的 $("#myform").serializeArray()
函数中。
问题很愚蠢,我使用的是名称而不是 ID,这导致所有表单元素在服务器端都为空。我已经改成
<form id="myform" method="POST">
效果不错
不过
<form name="myform" method="POST">
无效。