如何迭代jsp中具有多组项目的列表

时间:2013-07-03 05:14:30

标签: list jsp jstl

我有一个列表如下

dnsList有

url(url1,url2,url3等)及其对应的dns_time,update_time,status_code值。 connList有 url(url1,url2,url3等)及其对应的connection_time,update_time值。

我的servlet将dnsList,connList返回给jsp.Now我试图在jsp中显示它

 <table>
 <c:forEach items="${dnsList}" begin="0" end="${fn:length(dnsList)}"var="dnsList" varStatus="iter">
 <c:forEach items="${connList}" begin="0" end="${fn:length(connList)}"var="connList" varStatus="iter">

 here I am displaying the values
 <tr>
 <td>${dnsList[0]}</td>
 <td>${dnsList[1]}</td>
 <td>${connList[0]}</td>
 <td>${connList[1]}</td>
 </tr>
 </c:forEach>
 </c:forEach>

</table>

我的问题是我重复获得相同的结果2次。对于每个网址dnstime,连接时间记录在浏览器中重复多次。请帮助我。如何迭代列表。所以我得到输出表格为

 Required output format is
-------------------------------------------------------------
url1             
------------------------------------------------------
dns_time           connection_time  
dns_update_time    conn_update_time
status_code

url2
-----------------------------------------  
dns_time          connection_time
dns_update_time   conn_update_time
status_code

请有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

创建一个JSON对象并通过servlet的响应传递参数。因此,您将获得这样的数组,并可以通过简单的循环或计数器增量轻松打印它。

 JSONArray urls=new JSONArray();
 JSONArray time=new JSONArray();
 //Input urls, time and so on ....
 JSONObject dnslist=new JSONObject();
 res.put("urls", urls);
 res.put("time", time);
 PrintWriter out=response.getWriter();
 out.println(res.toString());

这是在你的servlet代码中。

现在你的脚本代码是:

$(document).ready(function(){
 something();
});

function something() 
{
   $.ajax({
    type: "post",
    success: function(resp) {
    alert(resp);
    if(resp!=null)
    {
    var response=eval('('+resp+')');
    /*we do this to make resp as an object. O/w we get it as string*/

    urls=response.urls;
    time=response.time;

    }
   }});
}

现在urls和time包含两个数组,您可以轻松打印它们。 开始使用JSON在sevlet和JSP页面之间传递值。希望这会有所帮助:)

答案 1 :(得分:-1)

最好在服务器端执行复杂的逻辑,并创建具有所需结构的特殊对象列表。然后你可以进行简单的迭代。