适用的原始JSP:
<c:forEach var="book" items="${books}" varStatus="bookIndex">
<td>
<jsp:include page="/includes/book_item.jsp?id=${book.id}&title=${book.title}&price=${book.price}&qty=${book.quantity}"/>
</td>
</c:forEach>
这段代码不是我写的,我想改进它,以便我将$ {book}传递给/includes/book_item.jsp,但不是一堆参数。
然而:
我不能让/includes/book_item.jsp接收书通过。为什么?有什么问题?
<jsp:include page="/includes/book_item.jsp">
<jsp:param name="book" value="${books[i.index]}" />
</jsp:include>
OR
<jsp:include page="/includes/book_item.jsp">
<jsp:param name="book" value="${book}" />
</jsp:include>
我试图重命名在命名冲突的情况下通过的书。我没有想法,试图解决它花了我几个小时....
在/includes/book_item.jsp中我尝试传递其他EL参数。
答案 0 :(得分:2)
您只能将字符串作为请求参数传递。不是对象。
您可能应该将包含的页面转换为JSP标记文件,将书籍作为属性接受。或者您可以将该书存储在请求属性中,然后包含JSP(将从此请求属性中获取它)