REST @FormParam为null
我有以下从浏览器传递到服务器
Status Code:204 No Content Request Method:POST Content-Type:application/x-www-form-urlencoded Form Data json:{"clientName":"PACK","status":"success","message":"successful!"}
并在jsp代码中
var loginData = { clientName: cList, status: "success", message: "successful!" }; $.ajax({ url: subUrl, type: 'POST', contentType : "application/x-www-form-urlencoded", data: { json: JSON.stringify(loginData) }, success: function (data) { handleLoginResult(data); } });
在Java代码中我有
@POST public Object persistResetPasswordLogs(@FormParam("clientName") String clientName) { try { log.info("in rest method ??? "+clientName); ....... .......
在服务器中,我将clientName作为null。
可能是什么原因,我该如何解决这个问题?
AFAIK,没有Jersey(JAX-RS)机制将JSON解析为表单数据。 表格数据应采用类似的forms
firstName=Stack&lastName=Overflow (or in your case clientName=someName)
其中firstName
和lastName
通常是表单输入元素中的name
属性值。 您可以使用jQuery轻松序列化字段值,使用单个serialize()
方法。
所以你可能会看到更像某些东西的东西
你有没有像这样定义Requestmapping:
@POST @Path("/submitclient") // your request mapping for 'subUrl' public Object persistResetPasswordLogs(@FormParam("clientName") String clientName)
和HTML:
还要看看你的json对象。 我相信你应该发送这样的东西:
var loginData = { clientName: "dit" // get it from input };
?