java - 如何从数据库动态填充 JSP 页面中的下拉列表?

标签 java jquery html ajax jsp

我是第一次使用 JSPAjax。我正在尝试从数据库获取一列数据,并使用 Ajax 调用将其填充到 JSP 页面的下拉列表中。我不想刷新页面,所以这就是原因,我正在进行 Ajax 调用。

这是我的 jsfiddle它有“进程”按钮,一旦我单击“进程”按钮,它现在就会显示一个空的下拉列表。这是我的另一个 test.jsp 页面。

我有一个表作为 account,我需要从 jsp 中进行此选择查询 -

SELECT USERS FROM ACCOUNT;

一旦我单击“进程”按钮,我就需要使用 Ajax 在我的 POSTGRESQL 数据库上执行上述 SQL 查询。无论我从数据库中返回什么用户,我都需要在下拉列表中填充这些 USERS ,如上面的 jsfiddle 所示。

下面是我的 JSP 页面 (databasecall.jsp),我在其中调用数据库以获取所有 USERS -

<%@page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.sql.*" %>
<%
    response.setContentType("application/json");

    try {
        // Step 1. Load the JDBC driver
        Class.forName("org.postgresql.Driver");

        // Step 2. Create a Connection object
        Connection con = DriverManager.getConnection(
                "jdbc:postgresql://localhost/test","root", "root!");

        Statement s = con.createStatement();

        String sql ="SELECT USERS FROM ACCOUNT";
        ResultSet rs = s.executeQuery(sql);

        while (rs.next()) {
            // what to do here?
        }
        rs.close();
        s.close();
        con.close();
    } catch (Exception e3) {
        e3.printStackTrace();
    }
%>

问题陈述:-

现在我的问题是,如何将从数据库获取的所有 USERS 数据填充到 test.jsp 页面的下拉列表中?意思是,我需要在单击“进程”按钮时调用此 JSP,然后传递我们获得的所有用户数据,然后动态填充下拉列表?

假设如果我从数据库中获取 10 个用户,那么下拉列表中应该有 10 个用户。

这可以做到吗?

最佳答案

当您通过 Ajax 调用获取数据时,您应该在 Servlet 上填充数据。

   @WebServlet("/populate")
   public class PopulateData extends HttpServlet{

      public void doGet(....){
         Class.forName("org.postgresql.Driver");
         Connection con = DriverManager.getConnection(
            "jdbc:postgresql://localhost/test","root", "root!");

        Statement s = con.createStatement();
        String sql ="SELECT USERS FROM ACCOUNT";
        ResultSet rs = s.executeQuery(sql);

        List<String> list = new ArrayList<String>();

        while (rs.next()) {
          list.add(rs.getString("USERS"));
        }
       String json = new Gson().toJson(list);
       response.getWriter().write(json);
      }
  }

现在您可以通过ajax调用将json数据填充到test.jsp页面。

另请参阅:

关于java - 如何从数据库动态填充 JSP 页面中的下拉列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24074221/

相关文章:

java - JSON 发送 A 类进入 B 类

Java 8 将 List 转换为 Lookup Map

java - 使用 eclipse 时 pom.xml 文件出错

javascript - 如何在数组中查找数组并将其删除?

javascript - 在 moment.js 中获取两个时间之间的小时数

javascript - Bootstrap 弹出窗口焦点不起作用

java - 字符 android 处的 JSON 未终止对象

java - html 表单 - 提交搜索

javascript - HTML5 本地 session 存储在链接点击上?

jquery - 切换类中的双重操作