我有一個數據表從數據庫中填充具有postconstruct註釋的初始化函數,問題是,當我刪除表中的一行表數據並沒有改變,甚至認爲該實例實際上是從數據庫中刪除,所以我想知道如果我可以再次執行init函數,那麼它會從DB中獲取新數據,並使用ajax將它們放入datatable中。有沒有一種方法可以在操作之後重新執行postconstract 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的更新,而不是'通過調用postConstruct註釋的方法'從數據庫中提取新數據並將它們放入datatable中使用ajax' –
uhhmmmm? – Kukeltje