2

我的 JSF 页面上有一个数据表,多亏了 BalusC 和 Odelya,它会在页面加载时动态填充。

但是现在当我尝试刷新 JSF 页面以从数据库中检索更新的数据时,我没有在 Datatable 中获取更新的数据。

我已经浏览了以下链接,但无法理解其中的细微差别..!

页面加载时 JSF 数据表刷新

4

2 回答 2

2

您的 bean 范围是否配置为 Session?

您是否尝试将其范围更改为请求?

不要忘记在填充结果集后关闭连接,它必须是一个CachedRowSet

这是 Core JavaServer Faces 书中的一个示例:

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();
        }
    }
}
于 2012-10-31T13:18:41.710 回答
0
'@RequestScoped' should be added to refresh your bean File to get the new data.
于 2013-04-18T17:38:15.523 回答