gpt4 book ai didi

java - REST @FormParam 为空

转载 作者:行者123 更新时间:2023-11-29 05:14:49 24 4
gpt4 key购买 nike

我将以下内容从浏览器传递到服务器

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。

这可能是什么原因,我该如何解决?

最佳答案

据我所知,没有将 JSON 解析为表单数据的 Jersey (JAX-RS) 机制。表单数据应该是这样的形式

firstName=Stack&lastName=Overflow (or in your case clientName=someName)

其中firstNamelastName一般都是表单输入元素中的name属性值。您可以使用 jQuery 轻松序列化字段值,使用单个 serialize()方法。

所以你可能有一些看起来更像这样的东西

<form id="post-form" action="/path/to/resource">
Client Name: <input type="text" name="clientName"/>
</form>
<input id="submit" type="button" value="Submit"/>
<script>
$("#submit").click(function(e) {
$.ajax({
url: $("form").attr("action"),
data: $("form").serialize(),
type: "post",
success: processResponse,
contentType: "application/x-www-form-urlencoded"
});
});
function processResponse(data) {
alert(data);
}
</script>

关于java - REST @FormParam 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26967672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com