将EL对象传递给其他jsp失败

时间:2014-04-29 05:21:08

标签: jsp jstl el

适用的原始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参数。

1 个答案:

答案 0 :(得分:2)

您只能将字符串作为请求参数传递。不是对象。

您可能应该将包含的页面转换为JSP标记文件,将书籍作为属性接受。或者您可以将该书存储在请求属性中,然后包含JSP(将从此请求属性中获取它)