我有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工作。
<form action=".jsp" method="post">
<c:redirect url=.jsp> <c:param name= value=> </c:redirect>
我已经尝试过此Link的解决方案。但是,我并没有真正使用的第一个解决方案<a ref/>。但我尝试过,但它不起作用。第二种解决方案就像我上面提到的。如果我没记错的话,第三和第四种解决方案是不使用JSTL。
<a ref/>
在我的代码中,我想将在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页
在此页面上,您的表格过帐至第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在这里起着重要的作用。会话属性可通过隐式对象获得。