将param从一个jsp传递到另一个jsp时出错

时间:2014-02-23 14:13:24

标签: jsp jstl

我有一个类似于以下的jsp

            <c:forEach items="${brand.weeklyOffers}" var="weeklyOffer">
        <jsp:include page="offer.jsp">
          <jsp:param name="offer" value="${weeklyOffer}" />
        </jsp:include>
    </c:forEach>

我的提议jsp看起来像followig

   <c:set var="offer" value="${param.offer}"/>
   <div class="accordion-group">
<div class="accordion-heading">
    <a class="accordion-toggle collapsed" data-toggle="collapse"
        data-parent="#accordion2" href="#collapse${param.offer.offerId}"><b>${offer.header}</b></a>
</div>

抛出以下异常

   Caused by: javax.el.PropertyNotFoundException: Property 'offerId' not found on type java.lang.String

但是当我做的时候

<c:out value="${param.offer}"/>
在offer.jsp中,我可以看到以下结果。

 Offer [offerId=ec431f30-9c77-11e3-b3db-3c970e02b4ec, offerImages=[/offer-images/ec431f30-9c77-11e3-b3db-3c970e02b4ec/ec43e280-9c77-11e3-b3db-3c970e02b4ec.jpg], offerDescription=sasa, header=Buy 2 get 1 free, startDate=Sun Feb 16 00:00:00 CET 2014, endDate=Sat Feb 22 00:00:00 CET 2014, city=Munich, worldwide=false, iso8601StartDate=2014-02-16T00:00:00.000+01:00, prettyPrintStartDate=16 Feb, iso8601EndDate=2014-02-22T00:00:00.000+01:00, prettyPrintEndDate=22 Feb, offerType=WEEKLY] Offer [offerId=f5b8b110-9c77-11e3-b3db-3c970e02b4ec, offerImages=[], offerDescription=asas, header=asasa, startDate=Sun Feb 16 00:00:00 CET 2014, endDate=Sat Feb 22 00:00:00 CET 2014, city=, worldwide=false, iso8601StartDate=2014-02-16T00:00:00.000+01:00, prettyPrintStartDate=16 Feb, iso8601EndDate=2014-02-22T00:00:00.000+01:00, prettyPrintEndDate=22 Feb, offerType=WEEKLY]

我不知道是什么问题,因为值传递并且在那里。任何线索..?

1 个答案:

答案 0 :(得分:0)

jsp:param将字符串参数传递给包含的JSP。因此,您所看到的是在weeklyOffer bean上调用toString()的结果。此String是作为参数传递给包含的JSP的内容。

如果要传递对象本身,则可以在include:

之前将其存储在请求属性中
<c:set value="${weeklyOffer}" var="offer" scope="request"/>

或将包含的JSP转换为a tag file,接受商品作为参数。