我尝试使用jQuery从选择框加载值(使用" multiple"属性)并将其发布到包含List变量的Struts2操作。我的问题是java变量永远不会被填充。
这是我想做的事情(但不起作用):
使用Javascript:
var params = {
searchField: $("#multiSelectBox").val(),
};
$.post("myAction", params, successFunction);
爪哇:
List<String> searchField;
//Getter & setter for my field here.
//I also tried a "String[] searchField", but that didn't work either.
当jQuery发布数据时,它看起来像这样:
searchField[]: value1
searchField[]: value2
searchField[]: value3
不幸的是,我的struts2操作中的searchField java变量没有收到这些数据。
我能够通过手动指定要提交的每个项目的索引来使其工作。所以javascript看起来像这样:
var params = { };
$($("#multiSelectBox").val()).each(function(i, item) {
params["searchField[" + i + "]"] = item;
});
$.post("myAction", params, successFunction);
有没有办法绕过并手动指定索引号?似乎struts2 params拦截器应该能够处理标准jQuery post格式的简单Strings列表。我的手动索引编号的解决方法看起来非常麻烦 - 特别是因为我的真实代码提交了几个列表,而不仅仅是一个&#34; searchField&#34;列表。