0

在一个 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()
},
4

1 回答 1

1

您可以使用 s2 select 标签轻松完成,此处不需要迭代器标签

<gs:select
       id="package-type-input" 
       name="packageTypeId"
       list="packageList"
       listKey="id"
       listValue="packagename"
/>

看一下选择标签说明

此外,如有疑问,请遵循标签参考。

至于您编辑的帖子:在您的_setData功能中

$.each(packageList, function(i,package){
    var option = $("<option value="+package.id+">"+package.packagename+"</option>");
    $("#package-type-input").append(option);
});
于 2012-06-18T09:51:13.590 回答