Javascript 无法刷新页面并在jsp页面上保留所选值
以下是我的jsp页面代码:Javascript 无法刷新页面并在jsp页面上保留所选值,javascript,jquery,jsp,Javascript,Jquery,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.Obi
<%@ 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中选择第一个选项时,我想在中显示id为1的obiekt的所有终端。你能帮我吗?首先,把你的选择放在表格里。因此,当您在刷新期间提交它时,您可以使用selectedObiekt=request.getParameterobiekt字符串获取它所持有的值。然后将选项修改为
<option value="<%=obiekt.idObiekt%>" <%= ((Integer.toString(obiekt.idObiekt)).equals(selectedObiekt))?"selected":""%>><%=obiekt.nazwa%>
<%=obiekt.adres%></option>
你考虑过了吗?不,我没有。我更喜欢javascript。您需要保留客户端的状态。为此,您需要使用cookie、localStorage或querystring参数?无论如何,eclipse调用syntax error insert来完成Expressioni已经编辑了我的文章。最后一个括号丢失了。有一个问题,因为idObiekt是整数类型。据我所知,integer是基本类型,所以我不能使用.equals子句,可以吗?我没有错误,但我的表中在这个select表单下面仍然没有任何行。我觉得课堂上有些不对劲。谢谢你,好的。过来看。如果你想不出来,你可以回来告诉我你有什么。你肯定会得到帮助的。