2

BalusC と Odelya のおかげで、JSF ページにデータテーブルがあり、ページの読み込み時に動的に入力されます。

しかし、データベースから更新されたデータを取得するために JSF ページを更新しようとすると、Datatable に更新されたデータが取得されません。

私はすでに次のリンクを通過しましたが、ニュアンスを理解できませんでした..!

ページ読み込み時の JSF データテーブルの更新

4

2 に答える 2

2

Bean スコープはセッションとして構成されていますか?

そのスコープを Request に変更しようとしましたか?

CachedRowSetである必要がある結果セットを埋めた後、接続を閉じることを忘れないでください。

Core JavaServer Faces book の例を次に示します。

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 に答える