I know this might be silly question and i tried googling but didnt got perfect answer.
I am using following code
<c:forEach var="aggregatedBatchProgressMetrics" items="${batchProgressMetricsList}">
<jsp:include page="html/tableContentsDisplayer.jsp">
<jsp:param name="batchProgressMetrics" value="${aggregatedBatchProgressMetrics}" />
</jsp:include>
</c:forEach>
and inside html/tableContentsDisplayer.jsp, i have following
<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 is what i get from c:forEach is an object of type com.xyz.AggregatedBatchProgressMetrics and not a String, from the exception it treats that as an String object. I have getClientId method inside the bean. Also if i place the content of included jsp file as is (without directives and c:set tag) it works absolutely fine. Is there a way i can pass an object using jsp:param tag and on the recieving end i get it as an object?
Is it possible using jstl or i will have to use scriptlets/expression for the same?
Thanks, Almas
HTTP request parameters are treated as strings. With
jsp:param
it's basically been converted to string byString#valueOf()
. Rather store it as object in the request scope with help of<c:set>
.