Primefaces UI:repeat 不起作用。

7

我正在尝试使用Primefaces创建accordionPanel。我尝试使用ui:repeat动态创建面板选项卡。但是,我的代码不起作用,accordionPanel没有任何选项卡。请问有人能告诉我原因或指导如何实现吗?

这是我的bean。

@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>
2个回答

12

你的 ui:repeat 没有问题,请勿将其包装在空标签内。

<p:accordionPanel >

或者移除 uirepeat 并填写您的手风琴面板的值

像这样做

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

即使您想使用“divis”作为变量名称,或使用toString方法或getName,它也可以正常工作。 - Omar Ayala

0
不要在构造函数中初始化列表,尝试在使用@PostConstruct注释的方法中进行初始化。
   @PostConstruct
   public void init(){
        divStrings=new ArrayList<String>();
        divStrings.add("Division A");
        divStrings.add("Division B");
   }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接