我有HTML表单数据并被传递给RESTful POST方法。我注意到如果@FormParam被声明为
@POST
public void commitProjects(
@FormParam("projectId")
int projectId)
如果projectId为null或为空,那么从浏览器执行POST方法时,我得到了
400 Bad Request
错误。
这可能是什么原因以及克服这种情况的最佳方法是什么?
修改1
来自浏览器
projectDesc=test&projectId=
和方法从Jquery调用为
method: 'POST',
//dataType: "json",
contentType : "application/x-www-form-urlencoded",
url: '/rest/projects',
HTTP标头
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8;q=0.6
Cache-Control:max-age=0
Connection:keep-alive
Content-Length:625
Content-Type:application/x-www-form-urlencoded
Cookie:JSESSIONID=0a0a0a0a231b787e42dd10d840d3b035d5998c574416
Host:xxxxxx:8987
Origin:http://xxxxx:8987
Referer:http://xxxxx:8987/project/test.jsp
User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36
表单数据
projectDesc=test
projectId=
答案 0 :(得分:2)
@POST
public void commitProjects(@FormParam("projectId") @DefaultValue("0") int projectId)
答案 1 :(得分:2)
null
或empty
解析为32位有符号整数,并返回HTTP 400(客户端错误)响应。
如果值不存在,则设置默认值如下
@POST
public void commitProjects(
@DefaultValue("0") @FormParam("projectId") int projectId
)