一尘不染

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

jsp

我有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>但是这些只会如果这两个网页相互连接i.ex 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>

阅读 245

收藏
2020-06-10

共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}"/>

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

2020-06-10