在一個xhtml頁面中,我有一個包含項目列表的表格。對於每個項目都有一個按鈕,由於刪除該項目。 一切似乎正常工作,但如果我按下瀏覽器的「刷新」按鈕,將被刪除我的表的另一項,如果我再次按刷新,將消失另一個等等。 我覺得有一點像這樣的調用,再次刷新頁面時,一種事件「在按鈕上執行的操作」。 我該如何避免這個可怕的問題?JSF問題刷新頁面
-xhtml:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:body>
<h:form>
<p:dataTable var="c" value="#{viewContattoBean.contatto}">
<p:column headerText="Nome">
<h:outputText value="#{c.contattoid}" />
</p:column>
<p:column headerText="Telefono">
<h:outputText value="#{c.numero}" />
</p:column>
<p:column headerText="Elimina">
<h:commandButton action="#{viewContattoBean.removeContatto(c)}" value="Elimina" />
</p:column>
</p:dataTable>
</h:form>
</h:body>
</html>
,尤其是圓形的管理bean:
@ManagedBean(name="viewContattoBean")
@RequestScoped
public class ViewContattoBean {
@EJB
private GestoreContattiLocal ejb;
private ContattoDTO[] contatto;
public ContattoDTO[] getContatto() {
System.out.println(FacesContext.getCurrentInstance().getExternalContext().getRemoteUser());
return ejb.getAll(FacesContext.getCurrentInstance().getExternalContext().getRemoteUser());
}
public void setContatto(ContattoDTO[] contatto) {
this.contatto = contatto;
}
public void removeContatto(ContattoDTO contatto){
System.out.println("remove: " + contatto.getUtenteid() + ", " + contatto.getContattoid());
ejb.removeContatto(contatto.getUtenteid(), contatto.getContattoid());
}
}
感謝大家
對不起landal79,我已經嘗試過,但它不工作。 – Samuele