使用 <jsp:include> 标记将参数传递给另一个 JSP 文件
Posted
技术标签:
【中文标题】使用 <jsp:include> 标记将参数传递给另一个 JSP 文件【英文标题】:Passing parameters to another JSP file using <jsp:include> tag 【发布时间】:2013-10-09 15:34:51 【问题描述】:我有一个 JSP 文件,在该文件中我包含另一个 JSP 文件:
<c:forEach var="instanceVar" items="$instanceList">
<c:set var="instance"><jsp:include page="instance.jsp"/></c:set>
...
</c:forEach
在文件 instance.jsp 中,我想使用变量instanceVar
。我想用 JSTL 来做。有没有办法做到这一点?
【问题讨论】:
【参考方案1】:<c:forEach var="instanceVar" items="$instanceList">
<jsp:include page="instance.jsp">
<jsp:param name="myVar" value="$instanceVar"/>
</jsp:include>
</c:forEach>
在instance.jsp
<c:out value="$param.myVar"/>
【讨论】:
请问如何在包含的jsp中访问java代码中的param.myVar? 问题是关于 JSTL。而且最好不要把java代码和JSTL混在一起。 成功了*。但就我而言,我不允许通过列表。 jsp 编译器引发错误,说明哪些参数必须是静态的(value="some static value")。不是要否决它,但它并没有解决我的问题。【参考方案2】:另一种方法是使用 setAttribute()
和 getAttribute()
【讨论】:
@SpringLearnersetAttribute()
of HttpSession
或 HttpServletRequest
?【参考方案3】:
另一种选择是使用 JSTL 标记 c:set 和请求范围。
<c:set var="instance" value="$your.value" scope="request"/>
<jsp:include page="instance.jsp"/>
【讨论】:
【参考方案4】:对我有用的解决方案如下
<c:set var="instance" value="$semaforoData" scope="request"/>
<jsp:include page="semaforo.jsp"/>
在jsp文件中,代码为:
<c:forEach var='itemSemaforo' items='$semaforoData' varStatus='loopSemaforo'>
Print data
</c:forEach>
【讨论】:
为我工作,让我有机会传递任何类型的动态对象。它并没有真正传递参数,而是在页面/支持类中创建一个变量,可以在包含的 jsp 中使用。以上是关于使用 <jsp:include> 标记将参数传递给另一个 JSP 文件的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jsp:include 参数标签将对象传递到另一个 jsp
<jsp:include page = ... > 和 <%@ include file = ... > 有啥区别? [复制]