下の画像を参照してください。PrimeFaces 5.3の最後のパネルを削除すると、すべてのパネルが消えます
これらの画像は、物事が私の現在のコードでどのように機能するかを示しています。最後のパネルを削除して更新ボタンを押すと、すべてのパネルが何とか消えます。 これは他のパネルでも同じように動作します。
誰もがこの問題の解決方法を知っていれば、大きな助けになるでしょう。 ありがとうございます。私は(念のため)以下のコードを貼らまし
:
【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;
}
}
クリックしましたコマンドボタン、 "@フォーム"を更新します。これは、あなたのbeanのすべてのgetterを呼び出すことを意味します。あなたはアップデートを実行する前にセッターに電話するajaxリクエストのプロセスを呼び出さなかった –
あなたのコメントをありがとう。答えでわかるように、 "@form"の更新は実際問題ではありませんでした。 "process =" @ this ""を置いた後は、私が期待したように動作しました。 – Karen