【问题标题】:How retrieve list of object from database in my JSP Page Without submitting the form? [duplicate]如何在不提交表单的情况下从我的 JSP 页面中的数据库中检索对象列表? [复制]
【发布时间】:2018-03-05 02:02:42
【问题描述】:

Java EE 开发人员您好;

当我刷新页面时,我需要在我的 JSP 中从数据库中获取对象 (ArrayList) 列表,这意味着无需提交表单。 在我的“myJsp.jsp”中,我有一个选择,其中选项是数据库中所有员工的 ID。

即 -> 我想在打开页面时查看选项中的所有员工 ID 而不提交表单?

我可以通过将表单提交给 servlet 并且 servlet 返回响应(对象列表)来做到这一点。

请问有解决方案吗?我该如何解决?

提前谢谢你

【问题讨论】:

  • 你好。 2017 年的 Java EE 开发人员不使用 JSP。用你的尝试而不是故事来提供代码
  • 我只是在开发一个小应用程序。我只想找到有关如何进行此操作的想法。我应该使用 Ajax 或任何类似的东西来检索数据吗?
  • 很难理解你(没有细节和代码)。可能“刷新而不提交”是最简单的 JSP 案例(在我的理解中)。所以需要你的尝试
  • Exaclty,当我打开文件时,我希望我的所有员工都在数据库中(ir -> 无需单击按钮来获取它们)。
  • 投反对票,因为没有尝试解决任何小部分问题

标签: java ajax jsp servlets jakarta-ee


【解决方案1】:

只需编写一项服务来获取员工记录并在 JSP 页面的 onload 中从 ajax 调用该服务。

$(document).ready(function(){
var emplist = [];
$.ajax({ url: "[API Service]",
        success: function(data){
           alert("done");
           emplist = data;
         // Here you got EMP ID List Obj
        }});
});

所以你可以使用 'emplist' 变量来显示员工 ID

【讨论】:

  • 你的回答有什么问题吗?顺便说一句,问题很广泛,很难理解。无论如何,JS代码无论如何都不是足够的解决方案
  • 感谢 Rajesh 的回答;请问该服务是一个与数据库交互的java类吗?
  • 如果你没有明白我的意思,我会提供另一种方法
【解决方案2】:

需要编写一个 Pojo 类(员工类),在 JSP 中检索 db 数据。

public class Employee {
    String id;
    String name;
    String mobileNo;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getMobileNo() {
        return mobileNo;
    }

    public void setMobileNo(String mobileNo) {
        this.mobileNo = mobileNo;
    }
}

JSP 提供如下:

<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>

<%
String id = request.getParameter("userId");
String driverName = "com.mysql.jdbc.Driver";
String connectionUrl = "jdbc:mysql://localhost:3306/";
String dbName = "dbname";
String userId = "root";
String password = "password";

try {
Class.forName(driverName);
} catch (ClassNotFoundException e) {
e.printStackTrace();
}

Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
%>
<h2 align="center"><font><strong>Retrieve data from database in jsp</strong></font></h2>
<table align="center" cellpadding="5" cellspacing="5" border="1">
<%
try{ 
connection = DriverManager.getConnection(connectionUrl+dbName, userId, password);
statement=connection.createStatement();
String sql ="select `id`,`first_name`,`mobile_no` from `user_info` where `first_name` like '%Chettupalli%'";

List<Employee> empList = new ArrayList<Employee>();
Employee emp;
resultSet = statement.executeQuery(sql);
while(resultSet.next()){
    emp = new Employee();
    emp.setId(resultSet.getString("id"));
    emp.setName(resultSet.getString("first_name"));
    emp.setMobileNo(resultSet.getString("mobile_no"));
    empList.add(emp);
}

} catch (Exception e) {
e.printStackTrace();
}
%>
<form>
<!-- You can prepare your form based on your requirement-->
</form>
</table>

empList 将在呈现此 JSP 时准备好。 因此,您只需传递 empList 对象,即可使用动态员工数据准备表单。

我认为这将满足您的要求。

【讨论】:

  • 1000 谢谢@Rajesh。您的回答非常有帮助,而且非常清楚。但是我使用的是休眠,所以不是在 JSP 中打开和执行 sql 查询,我可以使用 sama jsp 中的休眠直接访问数据库吗?谢谢
猜你喜欢
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 2016-12-05
  • 2020-12-10
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
相关资源
最近更新 更多