0

我正在使用 portlet 和 spring MVC。我想通过 ajax 调用获取项目列表并将该列表用作 display:table 属性。

我使用这个 ajax 调用:

jQuery.ajax({ url:'<portlet:resourceURL id="recuperarDatosAF">
 </portlet:resourceURL>', data: {idExpediente:expediente}, type: 'POST',
  datatype:'json', success: function(data) { 
      alert(data); 
  } 

每次用户选择组合项时都会执行此调用。每次恢复都会不同的项目列表。

我的问题是:如何用我刚刚得到的列表生成可显示的表格?

有一种方法可以更新显示:在 jsp 中使用该列表定义的表?

我定义的显示检索 requestScope 的列表,但我想用 ajax 调用检索列表。

我的显示:表:

       <display:table id="docentes" name="${requestScope.docentesList}"                       
                                           htmlId="resultadosDocentesListTable"
                                           pagesize="4"
                                           class="displayTagTable"
                                           uid="docente">
4

2 回答 2

0

我的问题是:如何用我刚刚得到的列表生成可显示的表格?

根据我的经验,您的列表必须包含 json 数据的 Map,例如:

Map productMap = new HashMap();

    productMap.put("id", "1");
    productMap.put("name", "Coca Cola");                

    List<Product> productList = new ArrayList<Product>();
    productList.add(productMap);

    jsonWriter.object()
        .key("status").value(true)                   
        .key("pList").value(productList)
        .endObject();

pList 包含产品图。

有一种方法可以更新显示:在 jsp 中使用该列表定义的表?

是的,在我使用firebug检查显示表标签部分后,我发现显示表标签将变为普通的html表。所以在ajax中:

success: function(data){
    if(data.status == true){
        var strHtml='';                
        for(var i=0;i<data.pList.length;i++){
        strHtml+='<tr><td>'"+data.pList[i].name+"'</td></tr>';   
        }
    jQuery("table#docentes tbody").html(strHtml);
    }                   

},

和你的显示标签

<display:table id="docentes" pagesize="4" class="displayTagTable" uid="docente">
    <display:column escapeXml="true" title="Product Name" >
    </display:column>                                                                                 
</display:table>
于 2013-08-28T05:53:52.933 回答
0

http://jsfiddle.net/kVdZG/

从 json 数据生成表的脚本,用这段代码替换 alert(data),这里 data.scores 是我的数据

var data = { "scores" : [ ["3/1/2011", 610],["4/1/2011", 610],["5/1/2011", 610],["6/1/2011", 610], ["7/1/2011", 720], ["8/1/2011", 500], ["9/1/2011", 500] ] }



$(data.scores).each(function(index, element){
         $('#scores').append('<tr><td> '+element[0]+' </td> <td> '+element[1]+' </td></tr>');       
    })
于 2012-12-02T20:41:35.780 回答