如何使用JSTL在JSP页面之间传递数据?

时间:2018-08-08 08:49:43

标签: jsp jstl

我有3个JSP页面,我们称它为First.jsp Second.jsp Third.jsp。我想将数据从First.jsp移到Third.jsp。我知道您可以同时使用<form action=".jsp" method="post"><c:redirect url=.jsp> <c:param name= value=> </c:redirect>来移动数据,但是只有当两个页面都相互连接时,这些功能才有效。例如,First.jsp和Second.jsp。

我已经尝试过此Link的解决方案。但是,我并没有真正获得使用<a ref/>的第一个解决方案。但我尝试过,但它不起作用。第二种解决方案就像我上面提到的。如果我没记错的话,第三和第四种解决方案就是不使用JSTL。

在我的代码中,我想将First.jsp的下拉列表中选择的选项移动到Third.jsp

这是我的下拉列表代码

<s:setDataSource var="ds" driver="com.mysql.jdbc.Driver"
                 url="jdbc:mysql://127.0.0.1:3306/project?useLegacyDatetimeCode=false&serverTimezone=Asia/Pontianak&useSSL=false"
                 user="root" password="root"/>

<s:query dataSource="${ds}" var="resultseta">
    SELECT DISTINCT departureto, departurefrom FROM schedule
</s:query>

<body>

        From:
        <SELECT class="drop" style="WIDTH: 143px" id="departfromcmb" name="departfromcmb">
            <option value="">Select your location</option>
            <c:forEach items="${resultseta.rows}" var="departfromrow">
                <option value="${departfromrow.departurefrom}"> ${departfromrow.departurefrom} </option> //i would like to pass this data to third.jsp
            </c:forEach>
        </SELECT> <br><br>

        To:
        <SELECT class="drop" style="WIDTH: 150px" id="departtocmb">
            <option value="">Select your destination</option>
            <c:forEach items="${resultseta.rows}" var="departtorow">
                <option> ${departtorow.departureto}</option> //i would like to pass this code to third.jsp
            </c:forEach>
        </SELECT> <br><br>

</body>

1 个答案:

答案 0 :(得分:1)

因此,将注释中的所有内容放在一起:

第1页

在此页面上,您的表单发布到页面2:

<form action="page2.jsp" method="post>
  <input name="foo"/>
</form>

第2页

在这里,我们将发布的表单字段设置为会话属性:

<c:set var="bar" value="${param.foo}" scope="session"/>

第3页

在这里,我们输出在上一页中设置的会话属性:

<c:out value="${sessionScope.bar}"/>

请注意,除了以外,在这里也起着重要的作用。会话属性可通过隐式对象获得。

请参见https://stackoverflow.com/tags/el/info