当我尝试通过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页面之前的第一次值是唯一的。但是第一个对象内容会覆盖下一个值。为什么呢?
答案 0 :(得分:0)
在Page2.jsp中的Actullay,使用具有请求范围的Object1值再次声明了相同的变量。 所以这些价值被覆盖了。
Page2.jsp:
<c:set var="param" value="${Object1}" scope="request" />
{page2 functionality}
由于再次设置了相同的密钥参数,因此在调用文件后,所有地方都覆盖了该值。