我正在研究Spring设计,将对象从一个Jsp页面传递到另一个Jsp页面是一个非常普遍的要求。但我真的不知道该怎么处理。我在做这样的事。控制器码
Payment payment = new Payment();
payment.setAmount(1000);
payment.setName("naveen");
Party party = new Party("Amit", "sharma");
payment.setParty(party);
Payment payment2 = new Payment();
payment2.setAmount(2000);
payment2.setName("naveen2");
Party party2 = new Party("divanshu", "Nanlani");
payment2.setParty(party2);
Payment payment3 = new Payment();
payment3.setAmount(3000);
payment3.setName("naveen3");
Party party3 = new Party("Pankaj", "chahal");
payment3.setParty(party3);
List<Payment> list = new ArrayList<Payment>();
list.add(payment);
list.add(payment2);
list.add(payment3);
ModelAndView mv = new ModelAndView();
mv.addObject("model", payment);
mv.addObject("list", list);
mv.setViewName("success");在控制器中,使用实例变量和当事方引用来准备支付对象。
one.jsp
<c:forEach var="item" items="${list}" varStatus="status">
<jsp:include page="other.jsp">
<jsp:param value="${list[status.index]}" name="nextItem"/>
</jsp:include>
<br/>
<c:out value="${item.party.firstName}"></c:out>
<br/>
</c:forEach>在这里,我尝试打印政党对象的值,并成功地打印出来。但是当将支付对象的引用传递给另一个名为second.jsp的页面时。它作为字符串传递给我所理解的。
second.jsp
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
Name ------------ ${param.nextItem}.name (1)
<c:set value="${param.nextItem}" var="itm"></c:set>
Name ***********
<c:out value="${itm}.name"></c:out> (2)在second.jsp页面中,第1行和第2行都打印如下内容
com.model.Payment@783bda.name
有人能指导我如何在第二页打印名字或party.firstName吗?
发布于 2015-05-27 16:59:02
jsp:param将值转换为字符串。尝试:
<c:forEach var="item" items="${list}" varStatus="status">
<c:set var="nextItem" value="${list[status.index]}" scope="request" />
<jsp:include page="other.jsp" />
...
</c:forEach>发布于 2015-05-27 16:55:02
在second.jsp中,EL表达式有点不正确。您要做的是调用itm的itm方法,然后将".name"附加到其输出中。变化
<c:out value="${itm}.name"></c:out>至
<c:out value="${itm.name}"/>也改变:
${param.nextItem}.name至
${param.nextItem.name}https://stackoverflow.com/questions/30488672
复制相似问题