gpt4 book ai didi

java - 如何使用 jQuery Ajax 将 javascript 数组发送到 struts 操作

转载 作者:搜寻专家 更新时间:2023-11-01 03:17:48 24 4
gpt4 key购买 nike

我是 Struts 2 的新手。我想通过使用 jQuery AJAX 请求将 javascript 数组发送到 Struts 操作类。
警报工作正常,execute() 不工作。
当我将 System.out.println("language : "+ language); 放在 execute() 方法中时,输出是

language : null.

var langArr = [];
$("#language").each(function()
{
var selectedLang = $("select").val();
var selectedValues = $(this).val();
langArr.push(selectedValues);
});
alert("Languages : " + langArr);

$.ajax({
method: "POST",
url: "getProjectPost",
data: { "language" : langArr },
dataType : "json",
traditional: true,
success:
function()
{
alert("Success");
},
error:
function()
{
alert("Error");
}
});

这是我的 Action 类

public class ProjectPostAction {

private int[] language;

public final int[] getLanguage() {
return language;
}

public final void setLanguage(int[] language) {
this.language = language;
}

public String execute() throws Exception {
System.out.println("language : "+ language[0]);
return "success";
}

最佳答案

Jquery 使用 $.param 序列化作为参数发送的数据在内部使用 $.ajax 进行 ajax 请求时.

数据应设置为整数数组或以逗号分隔的整数列表的字符串,以便 jQuery 可以在发送请求之前正确序列化它。

您只能使用传统 设置将数组参数发送到 struts2,因为 struts 使用类型转换来填充使用键作为参数名称的操作的属性。

因此,该数组应该是原始整数数组,但您的数组包含其他不是原始整数的对象。

为了演示你可以看到这个demo了解如何获取参数值并以与执行 $.ajax 相同的方式对其进行序列化。

Struts2也可以默认类型转换为包含逗号分隔值的字符串。例如,您可以看到 how checkbox list values are passed to struts action .

关于java - 如何使用 jQuery Ajax 将 javascript 数组发送到 struts 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42296013/

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