我在jsp中有两个下拉列表,必须从数据库获取下拉列表并在jsp中显示它。我是第一次使用jsp。你能给我一个从数据库中获取下拉列表并在jsp下拉元素中显示值的想法。提前谢谢
答案 0 :(得分:8)
如何从数据库中获取下拉值并在jsp中显示:
动态从Mysql中获取数据到(下拉)选择Jsp中的选项。这篇文章说明了从mysql数据库中获取数据并在Jsp中的select选项元素中显示。在阅读这篇文章之前你应该知道以下帖子:
如何将Mysql数据库连接到jsp。
如何在MySql中创建数据库并将数据插入数据库。 使用以下数据库来说明“从Mysql动态获取数据到(下拉)
”在Jsp中选择选项':
id City
1 London
2 Bangalore
3 Mumbai
4 Paris
以下代码用于在MySql数据库中插入数据。使用的数据库是“City”,用户名=“root”,密码也设置为“root”。
Create Database city;
Use city;
Create table new(id int(4), city varchar(30));
insert into new values(1, 'LONDON');
insert into new values(2, 'MUMBAI');
insert into new values(3, 'PARIS');
insert into new values(4, 'BANGLORE');
以下是在Jsp中从Mysql动态获取数据到(下拉)选择选项的代码:
<%@ page import="java.sql.*" %>
<%ResultSet resultset =null;%>
<HTML>
<HEAD>
<TITLE>Select element drop down box</TITLE>
</HEAD>
<BODY BGCOLOR=##f89ggh>
<%
try{
//Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection =
DriverManager.getConnection
("jdbc:mysql://localhost/city?user=root&password=root");
Statement statement = connection.createStatement() ;
resultset =statement.executeQuery("select * from new") ;
%>
<center>
<h1> Drop down box or select element</h1>
<select>
<% while(resultset.next()){ %>
<option><%= resultset.getString(2)%></option>
<% } %>
</select>
</center>
<%
//**Should I input the codes here?**
}
catch(Exception e)
{
out.println("wrong entry"+e);
}
%>
</BODY>
</HTML>
答案 1 :(得分:5)
您可以学习JSP页面直接访问数据库(mysql)here
的一些教程注意:
在jsp页面中导入sql标记库
<%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
然后在页面上设置数据源
<sql:setDataSource var="ds" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://<yourhost>/<yourdb>" user="<user>" password="<password>"/>
现在在页面上查询您想要的内容
<sql:query dataSource="${ds}" var="result"> //ref defined 'ds'
SELECT * from <your-table>;
</sql:query>
最后,您可以使用c:forEach
标记填充页面上的下拉列表,以迭代select
元素中的结果行
<c:forEach var="row" items="${result.rows}"> //ref set var 'result'
<option value='<c:out value="${row.key}"/>'><c:out value="${row.value}"/</option>
</c:forEach>
答案 2 :(得分:3)
我在我的代码中做到了这一点
请注意: 我是初学者。
这是我的jsp代码。
Options -MultiViews
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule !^https-required\.html$ /https-required.html [L,NC,R=302]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
答案 3 :(得分:0)
下面的示例代码详细说明了这一点。
<%@page import="java.sql.*, java.io.*,listresult"%> //import the required library
<%
String label = request.getParameter("label"); // retrieving a variable from a previous page
Connection dbc = null; //Make connection to the database
Class.forName("com.mysql.jdbc.Driver");
dbc = DriverManager.getConnection("jdbc:mysql://localhost:3306/works", "root", "root");
if (dbc != null)
{
System.out.println("Connection successful");
}
ResultSet rs = listresult.dbresult.func(dbc, label); //This function is in the end. The function is defined in another package- listresult
%>
<form name="demo form" method="post">
<table>
<tr>
<td>
Label Name:
</td>
<td>
<input type="text" name="label" value="<%=rs.getString("labelname")%>">
</td>
<td>
<select name="label">
<option value="">SELECT</option>
<% while (rs.next()) {%>
<option value="<%=rs.getString("lname")%>"><%=rs.getString("lname")%>
</option>
<%}%>
</select>
</td>
</tr>
</table>
</form>
//The function:
public static ResultSet func(Connection dbc, String x)
{
ResultSet rs = null;
String sql;
PreparedStatement pst;
try
{
sql = "select lname from demo where label like '" + x + "'";
pst = dbc.prepareStatement(sql);
rs = pst.executeQuery();
}
catch (Exception e)
{
e.printStackTrace();
String sqlMessage = e.getMessage();
}
return rs;
}
我试图让这个例子尽可能详细。如果您有任何疑问,请询问。