2012-10-31 66 views

回答

1

被配置爲一個會話bean的範圍是什麼?

您是否嘗試將其範圍更改爲請求?

不要忘記盡顯你的結果集,這已經是一個CachedRowSet

這裏是核心的JavaServer一個例子後,關閉您的連接面書:

import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 

import javax.annotation.Resource; 
import javax.faces.bean.ManagedBean; 
import javax.enterprise.context.RequestScoped; 
import javax.sql.DataSource; 
import javax.sql.rowset.CachedRowSet; 

@ManagedBean 
@RequestScoped 
public class CustomerBean { 
    @Resource(name = "jdbc/mydb") 
    private DataSource ds; 

    public ResultSet getAll() throws SQLException { 
     Connection conn = ds.getConnection(); 
     try { 
      Statement stmt = conn.createStatement(); 
      ResultSet result = stmt.executeQuery("SELECT * FROM Customers"); 
      CachedRowSet crs = new com.sun.rowset.CachedRowSetImpl(); 
      crs.populate(result); 
      return crs; 
     } finally { 
      conn.close(); 
     } 
    } 
} 
+0

它的工作..我將管理bean的範圍從會話更改爲請求。如果你不介意,你能告訴我請求和會話範圍豆之間的基本區別..!謝謝..! :) –

+0

會話範圍在會話處於活動狀態時保存模型的數據。您可以指定在web.xml中保留多少時間(搜索標記)。這是存儲一些數據的好方法,例如在虛擬商店中購物車。會話存儲在服務器中,它通常在客戶端使用cookie來將客戶端綁定到會話。 同時,請求範圍壽命短。它在請求中開始並在響應被髮回後結束。沒有數據將被保存。每個新的請求都會再次構建你的bean。 –

0
'@RequestScoped' should be added to refresh your bean File to get the new data.