我有一个类似于以下的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]
我不知道是什么问题,因为值传递并且在那里。任何线索..?
答案 0 :(得分:0)
jsp:param
将字符串参数传递给包含的JSP。因此,您所看到的是在weeklyOffer bean上调用toString()的结果。此String是作为参数传递给包含的JSP的内容。
如果要传递对象本身,则可以在include:
之前将其存储在请求属性中<c:set value="${weeklyOffer}" var="offer" scope="request"/>
或将包含的JSP转换为a tag file,接受商品作为参数。