如何从数据库中获取下拉值并在jsp中显示

时间:2014-03-21 05:27:12

标签: mysql jsp

我在jsp中有两个下拉列表,必须从数据库获取下拉列表并在jsp中显示它。我是第一次使用jsp。你能给我一个从数据库中获取下拉列表并在jsp下拉元素中显示值的想法。提前谢谢

4 个答案:

答案 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>

enter image description here

答案 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)

  1. 建立数据库连接并检索查询结果。
  2. 遍历结果并显示查询结果。
  3. 下面的示例代码详细说明了这一点。

    <%@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;
    }
    

    我试图让这个例子尽可能详细。如果您有任何疑问,请询问。