3

바보 같은 질문 일 수 있습니다. 인터넷 검색을 시도했지만 완벽한 답변을 얻지 못했습니다. 대해 forEach 유형의 COM의 목적 :jsp : param을 통해 전달 된 객체는 javax.el.PropertyNotFoundException을 throw합니다. java.lang.String 유형에서 'foo'속성을 찾을 수 없습니다.

내가, 내가

<c:set var="aggregatedBatchProgressMetrics">${param.batchProgressMetrics}</c:set>  
    <tr> 
     <td class="tdcenter">${aggregatedBatchProgressMetrics["clientId"]}</td>  
     <td class="tdcenter">${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsCompleted"]}</td> 
     <td class="tdcenter">${aggregatedBatchProgressMetrics["instrumentStats"]["totalImntsRemaining"]}</td> 
    </tr> 

aggregatedBatchProgressMetrics 다음 한

<c:forEach var="aggregatedBatchProgressMetrics" items="${batchProgressMetricsList}"> 
    <jsp:include page="html/tableContentsDisplayer.jsp"> 
     <jsp:param name="batchProgressMetrics" value="${aggregatedBatchProgressMetrics}" /> 
    </jsp:include> 
</c:forEach> 

및 HTML/tableContentsDisplayer.jsp 내부에 다음 코드

를 사용하고하는 것은 전 C에서 무엇을 얻을 수 있습니다. xyz.AggregatedBatchProgressMetrics 및 String이 아닌 경우 예외를 String 객체로 처리합니다. 빈 내부에 getClientId 메소드가 있습니다. 또한 포함 된 jsp 파일의 내용을 (지시문 및 c : set 태그없이) 배치하면 절대적으로 올바르게 작동합니다. jsp : param 태그를 사용하여 객체를 전달할 수있는 방법이 있습니까? 그리고받는 객체에서 객체로 가져 오는 방법이 있습니까?

jstl을 사용하면 가능합니까? 아니면 동일한 스크립틀릿/표현식을 사용해야합니까?

덕분에, 마스

+0

<c:forEach var="aggregatedBatchProgressMetrics" items="${batchProgressMetricsList}"> <c:set var="batchProgressMetrics" value="${aggregatedBatchProgressMetrics}" scope="request" /> <jsp:include page="html/tableContentsDisplayer.jsp" /> </c:forEach> 
제대로 –

+0

태그를 XML-탈출하지 마십시오 코드를 포맷하십시오. 그것은 코드를 읽을 수 없게 만듭니다. – BalusC

답변

6

HTTP 요청 매개 변수는 문자열로 처리됩니다. jsp:param은 기본적으로 String#valueOf()에 의해 문자열로 변환되었습니다. 오히려이를 <c:set>의 도움으로 요청 범위에 오브젝트로 저장하십시오.


<tr> 
    <td class="tdcenter">${batchProgressMetrics["clientId"]}</td>  
    <td class="tdcenter">${batchProgressMetrics["instrumentStats"]["totalImntsCompleted"]}</td> 
    <td class="tdcenter">${batchProgressMetrics["instrumentStats"]["totalImntsRemaining"]}</td> 
</tr> 
+0

고마워요 ... 그게 .. – Almas