7

PrimefacesでaccordionPanelを作成しようとしていますが、パネルタブをui:repeat動的に作成できるように、それを使用して作成しようとしていますが、どういうわけか私のコードは機能せず、accordionPanelは空で、タブがありません。私に理由を教えてください、またはこれを達成する方法を教えてください。

ここに私の豆。

@ManagedBean(name = "divisionList")
public class Divisions implements Serializable {

private List<String> divStrings;

public List<String> getDivStrings() {
        return divStrings;
    }
    public Divisions(){
        divStrings=new ArrayList<String>();
        divStrings.add("Division A") ;
        divStrings.add("Division B");
   }

}

そして私のxhtmlで:

<p:accordionPanel >
         <ui:repeat value="#{divisionList.divStrings}" var="divis">
               <p:tab title="#{divis}">
                            Content
               </p:tab>
         </ui:repeat>
</p:accordionPanel>

編集:

しかし、このように印刷すると、その動作:O

<ui:repeat value="#{divisionList.divStrings}" var="divis">
    <h:outputText value="#{divis}" />
</ui:repeat>
4

2 に答える 2

12

ui:repeatに問題はありません。空の中にラップしないでください

<p:accordionPanel >

または、uirepeatを削除して、accordionPanelの値を入力します

このようにしてください

<p:accordionPanel value="#{test.divStrings}" var="divis" >
           <p:tab title="#{divis}">
                        Content
           </p:tab>
</p:accordionPanel>
于 2013-01-15T10:09:53.367 に答える
0

コンストラクターでリストを初期化する代わりに、@PostConstruct注釈付きメソッドでリストを初期化してみてください。

   @PostConstruct
   public void init(){
        divStrings=new ArrayList<String>();
        divStrings.add("Division A");
        divStrings.add("Division B");
   }
于 2013-01-15T09:57:49.627 に答える