如何在jsp:include或c:set中将Object传递给JSP

时间:2017-07-27 11:02:02

标签: html jsp jstl jsp-tags

当我尝试通过jsp:param发送Object时,它被发送为String。 例如:

<jsp:include page="Page1.jsp">
    <jsp:param name="key" value="${Object1}"/>
</jsp:include>

<jsp:include page="Page1.jsp">
    <jsp:param name="key" value="${Object2}"/>
</jsp:include>

所以我尝试使用,

<c:set var="param" value="${Object1}" scope="request" />
<jsp:include page="Page1.jsp"/>

<c:set var="param" value="${Object2}" scope="request" />
<jsp:include page="Page1.jsp"/>

这是Page1.jsp:

<c:out value="${param.data}"/>
<jsp:include page="Page2.jsp"/>
<c:out value="${param.value}"/>

O / P

object1data
object1value
object2data
object1value

调用其他jsp页面之前的第一次值是唯一的。但是第一个对象内容会覆盖下一个值。为什么呢?

1 个答案:

答案 0 :(得分:0)

在Page2.jsp中的Actullay,使用具有请求范围的Object1值再次声明了相同的变量。 所以这些价值被覆盖了。

Page2.jsp:

<c:set var="param" value="${Object1}" scope="request" />
{page2 functionality}

由于再次设置了相同的密钥参数,因此在调用文件后,所有地方都覆盖了该值。