如何使用JSTL获取jsp中的列表元素?

时间:2013-01-16 07:12:39

标签: spring jsp spring-mvc jstl

我在Spring MVC java控制器类中有这样的代码:

@RequestMapping(value = "jobs", method = { RequestMethod.GET })
public String jobList(@PathVariable("username") String username, Model model) {
    JobInfo[] jobInfo;
    JobStatistics js;
    LinkedList<JobStatistics> jobStats = new LinkedList<JobStatistics>();
    try {
        jobInfo = uiClient.getJobs(username);
           for (int i = 0; i < jobInfo.length; i++) {
             js = uiClient.getJobStatistics(jobInfo[i].getJobId());
             jobStats.add(js);
           }
        model.addAttribute("jobs", jobInfo);
        model.addAttribute("jobStats", jobStats);
    }

uiClient将使用RMI从数据库中获取一些数据... 现在我想展示工作和&amp;使用JSTL在我的JSP文件中的相关统计信息:

<c:set var="stats" value="${jobStats}" />
        <c:forEach var="jobs" items="${jobs}">
           <c:set var="jobID" value="${jobs.JobId}"/>
          <table>
            <tr class="tr1">
                <td>${jobs.Topic}</td>
                <td>${stats.get(i).No}</td>
            </tr>
          </table>
        </c:forEach>

如何使用JSTL在JSP中获取Model的LinkedList元素?可能没有任何计数器i被放在我的范围内。

3 个答案:

答案 0 :(得分:22)

在我看来,正确的答案是你得到的两个答案的组合:

  

使用c:foreach tag

的varStatus属性

但:

  

“get”不是jstl函数。

<c:forEach var="jobs" items="${jobs}" varStatus="i">
   <c:set var="jobID" value="${jobs.jobId}"/>
  <table>
    <tr class="tr1">
        <td>${jobs.topic}</td>
        <td>${stats[i.index].no}</td>
    </tr>
  </table>
</c:forEach>

编辑:这是问题作者最终使用的代码:

<c:set var="stats" value="${jobStats}" />
<c:forEach items="${jobs}" varStatus="i">
   <c:set var="jobID" value="${jobs[i.index].jobId}"/>
  <table>
    <tr class="tr1">
        <td>${jobs[i.index].topic}</td>
        <td>${stats[i.index].no}</td>
        <td>${jobID}</td>
    </tr>
  </table>
</c:forEach>

答案 1 :(得分:7)

get不是jstl函数。

<td>${stats[i.index].No}</td>

答案 2 :(得分:3)

使用varStatus标记

c:foreach属性
<c:forEach var="jobs" items="${jobs}" varStatus="i">
   <c:set var="jobID" value="${jobs.JobId}"/>
  <table>
    <tr class="tr1">
        <td>${jobs.Topic}</td>
        <td>${stats.get(i.index).No}</td>
    </tr>
  </table>
</c:forEach>
相关问题