我是JSP新手,需要帮助。我想在JSP中创建一个带有下拉列表的网页。并使用所选下拉列表的值来从数据库中检索行。有没有办法做到这一点。如果是,那我们怎么做呢。如果不是,那么也请让我知道其他可能性。例子将受到高度赞赏。
我曾尝试使用onclick等事件但无法获得所需的输出。
提前致谢。
JSP代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ page import="java.sql.*"%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>LIBRARY</title>
</head>
<body>
<center>CATALOG</center>
<select name="subject" size="1" id="subject">
<option value="MATHS">MATHS</option>
<option value="PHY">PHYSICS</option>
<option value="CHEM">CHEMISTRY</option>
<option value="BIO" selected>BIOLOGY</option>
</select>
</div>
<%
String str = request.getParameter("subject");
try {
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql://localhost/books";
Connection con = DriverManager.getConnection(url,"#","#");
Statement st=con.createStatement();
String QueryString = "SELECT * from catalog WHERE subject='"+str+"'";
ResultSet rs = st.executeQuery(QueryString);
%>
<table class="sortable" id="catalog" width="100%" border="0">
<thead>
<tr>
<th scope="col" class="sr">S. No.</th>
<th scope="col" class="subject">SUBJECT</th>
<th scope="col" class="tt">TITLE</th>
<th scope="col" class="Auth">AUTHOR</th>
<th scope="col" class="price">PRICE</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="5" class="left">&nbps;/td>
</tr>
</tfoot>
<tbody>
<%
int i=1;
while (rs.next()) {
%>
<tr>
<td><%=i%></td>
<td><%=rs.getString(1)%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(3)%></td>
<td><%=rs.getString(4)%></td>
</tr>
<% i++;} %>
<%
// close all the connections.
rs.close();
st.close();
con.close();
} catch (Exception ex) {
out.println("Unable to connect to database.");
}
%>
</tbody>
</table>
</body>
</html>
我不确定我做错了什么。所以,如果有任何错误,请告诉我。 感谢
答案 0 :(得分:1)
对于您的下拉菜单,您可以尝试类似以下内容
<select name="drops" size="1" id="drops">
<option value="Audi">Audi</option>
<option value="BMW">BMW</option>
<option value="Corolla">Corolla</option>
<option value="Benz">Benz</option>
<option value="Others" selected>Others</option>
</select>
要获取所选值,请使用以下
String str = request.getParameter("drops");
这将从下拉列表中获取所选值,您可以使用它来获取数据库记录。
此致
修改1
我创建了一个带有样本值的测试jsp。你可以检查是否
request.getParameter()
为空或不为空。如果它不为null,则继续进行数据库查询。
此致
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"/>
<title>Request Details--</title>
</head>
<body>
<form name="myform" method="post" action="drops.jsp">
<select name="drops" size="1" id="drops">
<option value="Audi">Audi</option>
<option value="BMW">BMW</option>
<option value="Corolla">Corolla</option>
<option value="Benz">Benz</option>
<option value="Others" selected>Others</option>
</select>
<input type="Submit" value="Click -me"></input>
</form>
<%
if(request.getParameter("drops")!=null){
String str=request.getParameter("drops");
out.println(str);
}
%>
</body>
</html>