BalusC と Odelya のおかげで、JSF ページにデータテーブルがあり、ページの読み込み時に動的に入力されます。
しかし、データベースから更新されたデータを取得するために JSF ページを更新しようとすると、Datatable に更新されたデータが取得されません。
私はすでに次のリンクを通過しましたが、ニュアンスを理解できませんでした..!
BalusC と Odelya のおかげで、JSF ページにデータテーブルがあり、ページの読み込み時に動的に入力されます。
しかし、データベースから更新されたデータを取得するために JSF ページを更新しようとすると、Datatable に更新されたデータが取得されません。
私はすでに次のリンクを通過しましたが、ニュアンスを理解できませんでした..!
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();
}
}
}
'@RequestScoped' should be added to refresh your bean File to get the new data.