我的JSF頁面上有一個數據表,它可以在頁面加載時動態填充,這要歸功於BalusC和Odelya。
但現在當我嘗試刷新JSF頁面以從數據庫中檢索更新的數據時,我沒有在Datatable中獲取更新的數據。
JSF - 更新頁面刷新時的JSF數據表
我已經通過以下鏈接,但無法理解細微差別..!
JSF datatable refresh on page load
我的JSF頁面上有一個數據表,它可以在頁面加載時動態填充,這要歸功於BalusC和Odelya。
但現在當我嘗試刷新JSF頁面以從數據庫中檢索更新的數據時,我沒有在Datatable中獲取更新的數據。
JSF - 更新頁面刷新時的JSF數據表
我已經通過以下鏈接,但無法理解細微差別..!
JSF datatable refresh on page load
被配置爲一個會話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();
}
}
}
'@RequestScoped' should be added to refresh your bean File to get the new data.
它的工作..我將管理bean的範圍從會話更改爲請求。如果你不介意,你能告訴我請求和會話範圍豆之間的基本區別..!謝謝..! :) –
會話範圍在會話處於活動狀態時保存模型的數據。您可以指定在web.xml中保留多少時間(搜索和標記)。這是存儲一些數據的好方法,例如在虛擬商店中購物車。會話存儲在服務器中,它通常在客戶端使用cookie來將客戶端綁定到會話。 同時,請求範圍壽命短。它在請求中開始並在響應被髮回後結束。沒有數據將被保存。每個新的請求都會再次構建你的bean。 –