【问题标题】:Passing parameters to another JSP file using <jsp:include> tag使用 <jsp:include> 标记将参数传递给另一个 JSP 文件
【发布时间】: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 来做。有没有办法做到这一点?

【问题讨论】:

    标签: jsp include 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()

    【讨论】:

    • @SpringLearner setAttribute() of HttpSessionHttpServletRequest?
    【解决方案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 中使用。
      猜你喜欢
      • 2015-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-10
      • 2014-01-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多