這裏是我的jsp頁面代碼:無法刷新頁面並保持jsp頁面上選擇價值
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.util.*"%>
<%@ page import="test.Obiekt"%>
<%@ page import="test.ListaObiektow"%>
<%@ page import="test.Termin"%>
<%@ page import="test.ListaTerminow"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>menu główne</title>
<meta name="viewport" content="initial-scale=1, maximum-scale=1">
<meta name="android-mobile-web-app-capable" content="yes">
<meta name="android-mobile-web-app-status-bar-style" content="black">
<link href="css/ratchet.css" rel="stylesheet">
<link href="css/ratchet-theme-android.css" rel="stylesheet">
<script src="js/ratchet.js"></script>
<script type="text/javascript">
function Refresh(idObiekt){
location.href="pilkaNozna.jsp?idObiekt=" + idObiekt;
}
</script>
</head>
<body>
</br>
</br>
</br>
<header class="bar bar-nav">
<a class="icon icon-left-nav pull-left" href="wyszukaj.jsp"></a>
<h1 class="title">Wybierz obiekt</h1>
</header>
<div id="content">
<div class="tabelawybor">
<b>Wybierz obiekt:</b>
<%
ArrayList<Obiekt> list = new ListaObiektow().getObiekty();
%>
<form name="obiekt">
<select name="obiekt" onChange="Refresh(this.value)">
<%
for (Obiekt obiekt : list) {
String selectedObiekt = request.getParameter("obiekt");
%>
<option value="<%=obiekt.idObiekt%>"
<%= ((Integer.toString(obiekt.idObiekt)).equals(selectedObiekt))?"selected":""%>><%=obiekt.nazwa%>
<%=obiekt.adres%></option>
<%
int idObiekt = obiekt.idObiekt;
request.setAttribute("idObiekt", idObiekt);
%>
<%
}
%>
</select>
</form>
</div>
<div class="tabelawybor">
<td><b>Wpisz liczbę uczestników:</b><input type="text"
name="uczest" /></td>
</div>
<div class="tabelawybor">
<table class="center">
<tr>
<td>Nazwa obiektu:</td>
<td>Data:</td>
<td>Godzina</br> rozpoczęcia:
</td>
<td>Godzina</br> zakończenia:
</td>
<td></td>
</tr>
<%
ArrayList<Termin> lista = new ListaTerminow().getTerminy();
for (Termin termin : lista) {
%>
<tr>
<td><%=termin.nazwaObiektu%> <%=termin.adresObiektu%></td>
<td><%=termin.dzien%></td>
<td><%=termin.odKtorej%></td>
<td><%=termin.doKtorej%></td>
<td><form action="Rezerwuj" method="post">
<button class="btn btn-primary">Zarezerwuj</button>
</form></td>
</tr>
<%
}
%>
</table>
</div>
</div>
</body>
</html>
ListaTerminow.java
package test;
import test.ConnectionClass;
import test.ListaObiektow;
import test.Obiekt;
import java.io.IOException;
import java.sql.*;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import test.ListaObiektow;
public class ListaTerminow {
Connection conn;
int idObiekt;
public ListaTerminow() throws SQLException
{
conn = ConnectionClass.Polacz();
}
public ArrayList<Termin> getTerminy() throws SQLException, ClassNotFoundException
{
ArrayList<Termin> terminy = new ArrayList<Termin>();
ResultSet rs = null;
String query = "SELECT obiekty.nazwa,obiekty.adres, termin.dzien, termin.odKtorej, termin.doKtorej FROM termin LEFT JOIN obiekty ON termin.idObiekt = obiekty.idObiekt WHERE termin.czyZajety = false AND obiekty.idObiekt = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setLong(1, idObiekt);
rs = ps.executeQuery();
while(rs.next())
{
Termin termin = new Termin();
termin.setNazwaObiektu(rs.getString(1));
termin.setAdresObiektu(rs.getString(2));
termin.setDzien(rs.getDate(3));
termin.setOdKtorej(rs.getString(4));
termin.setDoKtorej(rs.getString(5));
terminy.add(termin);
}
return terminy;
}
}
我找到解決方案來刷新,並記住後選擇選項值從選擇的形式。但現在,我想以下面的選擇形式顯示所有「終止」。例如:當我選擇第一個選項在選擇形式(obiekt.idObiekt = 1),然後我想顯示所有終端obiekt id 1英寸。你可以幫我嗎 ?
您是否考慮過[cookies](https://www.hscripts.com/tutorials/jsp/jsp-cookie.php)? –
不,我沒有。我更喜歡javascript。 – abecadlo
您需要保留狀態客戶端。爲此,您需要使用cookie,localStorage或查詢字符串參數。 – Cymen