如何使用jquery通过json返回列表填充Struts2UI选择标记? //struts.xml 杰森达 //动作类 公共类AjaxAction扩展了ActionSupport{ 专用字符串容量; 私人弦乐问候; 私人名单国家名单; 私有地图; 公共字符串execute()引发异常{ jsonData=newlinkedhashmap(); 问候语=“嗨”+“阿米特”; countryList=新的ArrayList(); 国家列表。添加(“美国”); 国家列表。添加(“英国”); 国家名单。添加(“俄罗斯”); put(“capacity”,this.getCapacity()); jsonData.put(“countryList”,countryList); jsonData.put(“countryMap”,countryMap); jsonData.put(“问候语”,问候语); 回归成功; } //二传手

如何使用jquery通过json返回列表填充Struts2UI选择标记? //struts.xml 杰森达 //动作类 公共类AjaxAction扩展了ActionSupport{ 专用字符串容量; 私人弦乐问候; 私人名单国家名单; 私有地图; 公共字符串execute()引发异常{ jsonData=newlinkedhashmap(); 问候语=“嗨”+“阿米特”; countryList=新的ArrayList(); 国家列表。添加(“美国”); 国家列表。添加(“英国”); 国家名单。添加(“俄罗斯”); put(“capacity”,this.getCapacity()); jsonData.put(“countryList”,countryList); jsonData.put(“countryMap”,countryMap); jsonData.put(“问候语”,问候语); 回归成功; } //二传手,jquery,struts2,struts,struts2-jquery,struts2-json-plugin,Jquery,Struts2,Struts,Struts2 Jquery,Struts2 Json Plugin,} //脚本 $(文档).ready(函数(){ $(“#容量”)。更改(函数(){ var容量=$(“#容量”).val(); $.getJSON('CheckUserAction.action'{ 容量:容量 },函数(数据){ $('#abc').append(''+data.capacity); $(“#abc”).append(“”+data.countryList); $('xyz').attr('value',data.greeting); $('#pqr').attr('list

}

//脚本
$(文档).ready(函数(){
$(“#容量”)。更改(函数(){
var容量=$(“#容量”).val();
$.getJSON('CheckUserAction.action'{
容量:容量
},函数(数据){
$('#abc').append('
'+data.capacity); $(“#abc”).append(“
”+data.countryList); $('xyz').attr('value',data.greeting); $('#pqr').attr('list',data.countryList); }); 返回false; }); }); //JSP代码 首字母
我想用json返回的list countryList填充list(id:pqr),我可以更改textfield(id:xyz)的属性值,我还将其附加到div(id:abc)中,但我无法更改struts select标记的属性列表。 它与struts标记在HTML中的填充方式有关

另外,我没有使用struts jquery插件,也没有使用dojo插件。
谢谢

您在data.countryList中收到了什么样的数据?你能发布这些数据吗?我希望下拉列表中没有名为list的属性。列出Struts提供的属性。您可以为下拉列表组合数据,如

//Script
$(document).ready(function() {
        $("#capacity").change(function() {
            var capacity = $("#capacity").val();
            $.getJSON('CheckUserAction.action', {
                capacity : capacity
            }, function(data) {
                $('#abc').append('<br>' + data.capacity);
                $('#abc').append('<br>' + data.countryList);
                $('#xyz').attr('value', data.greeting);
                $('#pqr').attr('list', data.countryList);
            });
            return false;
        });
    });





//JSP code
<table border="0">

        <tr>
            <td><s:label for="capacity" value="Capacity" /></td>
            <td><s:textfield name="capacity" placeholder="100" id="capacity"
                    value="abc"></s:textfield></td>
        </tr>
        <tr>
            <td><s:label for="dynamic" value="Ajax" /></td>
            <td><s:textfield name="dynamic" value="learning" id="xyz"></s:textfield></td>
        </tr>
        <tr>
            <td><s:label for="flightId" value="Flights" /></td>
            <td><s:select list="#{'1':'1' }" name="fightId" id="pqr"></s:select></td>
    </tr>
</table>
<div id="abc">Initial</div>
否则,您正在更新Courty意味着您可以将数据附加到下拉列表中,如

$('#pqr').html(composed_country_list);

让我知道这是否有帮助。

以下代码对我有效

$('#pqr').append(composed_country_list);
//JSP
脚本文件

     //JSP
    <s:select list="{}" name="fightId" id="pqr"></s:select>
$(文档).ready(函数(){
$(“#容量”)。更改(函数(){
var容量=$(“#容量”).val();
$.getJSON('CheckUserAction.action'{
容量:容量
},函数(数据){
countryListItem=data.countryList;
});
返回false;
});
});       
var pqr=$(“#pqr”);
pqr.find('option').remove();
pqr.append('--Select--');
对于(变量i=0;i
使用javascript通过创建选项属性来填充列表。 struts select标记实际上在内部生成这种HTML

看。
$('#pqr').append(composed_country_list);
     //JSP
    <s:select list="{}" name="fightId" id="pqr"></s:select>
    $(document).ready(function() {
    $("#capacity").change(function() {
        var capacity = $("#capacity").val();
        $.getJSON('CheckUserAction.action', {
            capacity : capacity
        }, function(data) {

            countryListItem = data.countryList;
        });
        return false;
    });
});       




    var pqr = $('#pqr');
    pqr.find('option').remove();
    pqr.append('<option value=-1>--Select--</option>');
     for(var i = 0; i < countryListItem .length; i++) {
            var opt = document.createElement('option');
            opt.innerHTML = countryListItem [i];
            opt.value = countryListItem [i];
            pqr.append(opt);

        }