2017-09-23 25 views
-3

Hello Java EE开发人员,如何在我的JSP页面中从数据库检索对象列表而不提交表单?

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

即 - >我想要什么时候打开页面我希望在选项中看到所有的员工ID,而无需提交表单?

我可以通过将表单提交给servlet来完成它,并且servlet返回响应(对象列表)。

请问有解决方案,我怎么解决它?

预先感谢您

+1

你好。 2017年的Java EE开发人员不使用JSP。给你的代码尝试,而不是故事 –

+0

我只是开发一个小应用程序。 我只想找到关于如何进行此操作的想法。 我应该使用Ajax还是其他任何类似的东西来重新获取数据? –

+0

很难理解你(没有细节和代码)。可能“未提交刷新”是最简单的JSP案例(以我的理解)。 SO需要你的尝试 –

回答

-1

只要写一个服务来获取员工记录和JSP页面的onload事件调用该服务从阿贾克斯。

$(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(S)

+0

你的回答有什么问题?顺便提一下,问题很广泛,很难理解。无论如何,在任何情况下,JS代码都不是足够的解决方案 –

+0

谢谢Rajesh为你的答案;请问服务是一个与数据库交互的java类吗? –

+0

我会提供另一种方法,如果你没有得到我的观点 –

-2

需要写一个POJO类(Employee类),在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对象上进行中继,以使用动态员工数据准备您的表单。

我认为这将符合您的要求。

+0

1000谢谢@Rajesh。 您的回答非常有帮助,而且非常清楚。 但我使用Hibernate所以,而不是在JSP中打开和执行sql查询,我可以使用sama jsp中的hibernate直接访问数据库吗? 谢谢 –

相关问题