복붙노트

[SPRING] JSTL을 사용하여 jsp 내부의 목록 요소를 얻는 방법?

SPRING

JSTL을 사용하여 jsp 내부의 목록 요소를 얻는 방법?

내 봄 MVC 자바 컨트롤러 클래스 안에 이런 코드가있다 :

@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를 사용하여 데이터베이스에서 데이터를 가져옵니다 ... 이제 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 요소를 얻으려면 어떻게해야합니까? 나를위한 범위에 카운터를 넣을 수는 없습니다.

해결법

  1. ==============================

    1.제 생각에는 옳은 대답은 두 가지 대답의 조합입니다.

    제 생각에는 옳은 대답은 두 가지 대답의 조합입니다.

    그러나:

    <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>
    
  2. ==============================

    2.get은 jstl 함수가 아닙니다.

    get은 jstl 함수가 아닙니다.

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

    3.c : foreach 태그의 varStatus 속성 사용

    c : foreach 태그의 varStatus 속성 사용

    <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>
    
  4. from https://stackoverflow.com/questions/14353054/how-to-get-the-element-of-a-list-inside-jsp-using-jstl by cc-by-sa and MIT license