私は、postconstruct annotationを持つinit関数を使ってDBから読み込まれたデータテーブルを持っていますが、テーブル内の行を削除すると、テーブルのデータが変更されず、インスタンスがDBから実際に削除されたと思っています私は再度init関数を実行することができるので、DBから新しいデータを取得し、おそらくajaxを使ってdatTableに入れます。アクションの後にポストコンセントinitメソッドを再実行する方法はありますか?
@ManagedBean
@SessionScoped
public class Compte implements Serializable{
\t /**
\t *
\t */
\t private static final long serialVersionUID = -7177239517089845251L;
\t
\t private int id_compte;
\t private int id_agence;
\t private int id_client;
\t private String num_compte;
\t private double solde;
\t private String date_creation_compte;
\t public ArrayList<Compte> comptes;
\t
\t dao d = new dao();
\t
\t public Compte() {
\t \t super();
\t \t // TODO Auto-generated constructor stub
\t }
\t
\t @PostConstruct
public void init() {
\t \t
\t \t ExternalContext ec =
\t \t \t \t FacesContext.getCurrentInstance().getExternalContext();
\t \t HttpSession session = (HttpSession) ec.getSession(false);
\t \t if(session.getAttribute("idagence")!=null){
\t \t \t comptes=d.getComptesAgc((String)session.getAttribute("login"));
\t \t }else{
\t \t comptes=d.getComptes((String)session.getAttribute("login"));}
}
<ui:composition template="./WEB-INF/template/template.xhtml">
<ui:param name="titre" value="Liste de Comptes"/>
<ui:define name="content">
<ice:form id="form">
<style type="text/css">
.ui-datatable-odd {
background-color:lightgray !important;
background-position-y: -1400px;
}
</style>
\t \t \t <ace:dataTable id="cptTable" value="#{compte.comptes}"
\t \t \t \t var="cpt" paginator="true" paginatorPosition="bottom" rows="10">
...
</ace:dataTable>
解決策は、あなたのdataTableの更新を実行することではなく、 'DBから新しいデータを取り込み、ajax'を使ってdatTableに入れます' –
uhhmmmm postConstruct注釈付きメソッドを呼び出すことによってですか? – Kukeltje