請參閱下圖。使用PrimeFaces刪除最後一個面板時,所有面板都會消失5.3
這些圖像顯示的東西如何與我當前的代碼工作。當我刪除最後一個面板並按下更新按鈕時,所有面板都會以某種方式消失。 當我對其他面板進行相同操作時,它運行良好。
如果有人知道如何解決這個問題,這將是一個很大的幫助。 在此先感謝。
我attatched下面的代碼(以防萬一):
【XHTML】
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:ui="http://java.sun.com/jsf/facelets"> <h:head></h:head> <h:body> <h:form> <ui:repeat value="#{newapp001.list}" var="item" > <p:panel header="#{item}" closable="true" > <p>my information</p> </p:panel> </ui:repeat> <p:commandButton value="Update" update="@form" /> </h:form> </h:body> </html>
【ManagedBean】 包樣品;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("newapp001")
@SessionScoped
public class NewApp001 implements Serializable
{
private static final long serialVersionUID = 2610647621325923945L;
private List<String> list;
public NewApp001()
{
this.list = new ArrayList<>();
this.list.add("aaa");
this.list.add("bbb");
this.list.add("ccc");
this.list.add("ddd");
return;
}
public List<String> getList()
{
return this.list;
}
}
當你點擊命令按鈕,你更新「@form」。這意味着調用你的bean的所有getter。在執行更新之前,您沒有調用ajax請求的進程來調用setter。 –
謝謝您的評論。正如你在答案中看到的那樣,更新「@form」並不是一個真正的問題。把「process =」@ this「放到」之後,它按我的預期工作。 – Karen