首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将实体从父JSP传递给包含的JSP

问如何将实体从父JSP传递给包含的JSP
EN

Stack Overflow用户
提问于 2015-05-27 16:52:15
回答 2查看 1.7K关注 0票数 1

我正在研究Spring设计,将对象从一个Jsp页面传递到另一个Jsp页面是一个非常普遍的要求。但我真的不知道该怎么处理。我在做这样的事。控制器码

代码语言:javascript
复制
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

代码语言:javascript
复制
<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

代码语言:javascript
复制
<%@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吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-27 16:59:02

jsp:param将值转换为字符串。尝试:

代码语言:javascript
复制
<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>
票数 0
EN

Stack Overflow用户

发布于 2015-05-27 16:55:02

在second.jsp中,EL表达式有点不正确。您要做的是调用itm的itm方法,然后将".name"附加到其输出中。变化

代码语言:javascript
复制
<c:out value="${itm}.name"></c:out>

至

代码语言:javascript
复制
<c:out value="${itm.name}"/>

也改变:

代码语言:javascript
复制
${param.nextItem}.name

至

代码语言:javascript
复制
${param.nextItem.name}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30488672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档