2017-09-23 48 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直接訪問數據庫嗎? 謝謝 –

相關問題