gpt4 book ai didi

javascript - 在ajax请求中获取Spring @RequestParam

转载 作者:行者123 更新时间:2023-12-02 03:49:54 28 4
gpt4 key购买 nike

我正在尝试在我的 javascript 中获取一个 Java 对象。我正在使用 ajax 请求来获取该对象。这是我的代码:

@RequestMapping(path = "/sendSMS", method = RequestMethod.POST)
public void sendSMS(HttpServletRequest request,
HttpServletResponse response,
final ModelMap contactModel,
@RequestParam(value = "id") final String contactId) { ... }

和我的ajax请求:

var $this = $(this);
$.ajax({
type : 'POST',
url : '/contacts/sendSMS?id=${param.id}',
data : $this.serialize(),
dataType : 'json',
success : function(json) {
alert("success");
$.each(json,function(index,element) {
if (index == "message") {
message = element;
alert(message);
}
}
}
})

我在 Eclipse 中遇到的错误是:

java.lang.NumberFormatException: For input string: "${param.id}"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at com.controller.contact.ContactController.sendSMS(ContactController.java:259)

这一行是:

Integer id = Integer.parseInt(contactId);

编辑:当我对 id 进行硬编码时它就起作用了。我只是像这样修改 url :

var smsUrl = '/contacts/sendSMS?id=113';
url : smsUrl,

现在我的问题是我不知道如何动态获取id值。

最佳答案

${param.id}

这个值来自Spring。 JavaScript 文件应与 JSP 文件分开。例如,您可以将 Spring 变量连接到 JSP 文件中的 HTML 标记,如 <form> :

<form myattribute="${param.id}">
...
</form>

现在您可以使用 jQuery 在 JavaScript 文件中获取该值,如下所示:

var myId = $('form').attr('myattribute');

$.ajax({
type : 'POST',
url : '/contacts/sendSMS?id=' + myId
...
});

您还可以使用 data-* 属性在 HTML 标记中嵌入自定义数据,例如:

 <form data-myvariable="${param.id}">
...
</form>

然后在JS文件中:

var myId = $('form').data("myvariable");

$.ajax({
type : 'POST',
url : '/contacts/sendSMS?id=' + myId
...
});

关于javascript - 在ajax请求中获取Spring @RequestParam,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35974083/

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