在jsp页面中,我有一个选择输入,它从Struts2动作获取值,我使用Struts2迭代器标记来获取值。
<select id="package-type-input" name="packageTypeId">
<gs:iterator var="package" value="" id="test-iterator">
<option value='<gs:property value="#package.id"/>'
<gs:property value="#package.packagename"/></option>
</gs:iterator>
</select>
我从struts2操作中获取值作为List packagesList。我试图使用下面的行将这些值添加到迭代器。但它不起作用
$("#test-iterator").val(packageList).
ajax调用是
_getAccountDetails: function () {
var self = this;
var organizationId = self.id;
$.ajax({
type: "POST",
url: self.url.getOrgPackageDetails,
dataType: 'json',
traditional: true,
data: "organizationId=" + organizationId,
success: function (response) {
self._setData(response.data,response.packageList);
},
error: function (response) {}
});
},
response.packageList是java Array列表的jsonified形式。 setData方法将response.data中的数据设置到各自的字段中。
_setData: function (data, packageList) {
var self = this;
self.dom.currentPackageType.val(data.CurrentPackage);
self.dom.currentUsersLimit.val(data.Users);
self.dom.currentEntityLimit.val(data.Entities);
self.dom.CurrentRenewalDate.val(moment(data.RenewDate).calendar());
self.dom.currentQEntityLimit.val(data.QEntity);
self._bindGUIEvents()
},
答案 0 :(得分:1)
您可以使用s2 select标签轻松完成,此处不需要迭代器标记
<gs:select
id="package-type-input"
name="packageTypeId"
list="packageList"
listKey="id"
listValue="packagename"
/>
另外,只要您有疑问,请关注Tag Reference。
至于您编辑的帖子:
在_setData
功能
$.each(packageList, function(i,package){
var option = $("<option value="+package.id+">"+package.packagename+"</option>");
$("#package-type-input").append(option);
});