gpt4 book ai didi

jsf - 有没有办法动态创建 elements?

转载 作者:行者123 更新时间:2023-12-04 20:36:26 25 4
gpt4 key购买 nike

假设我想创建一个变量集 <rich:tab> <rich:tabPanel> 中的元素成分。所以我尝试这样做:

<rich:tabPanel switchType="client" ...>
<ui:repeat value="#{myBean.myTabs}" var="tab">
<rich:tab name="#{tab.name}" label="#{tab.label}"/>
</ui:repeat>
</rich:tabPanel>

但它不起作用,因为没有呈现选项卡。我还在日志中收到以下消息:
j_id174: tab panel has no enabled or rendered tabs!

这个问题其他人好像也遇到过,比如 here .

所以按照上一个线程的建议,我替换了我的 <ui:repeat>来自 <c:forEach>但问题仍然存在。

我有办法使用 binding 解决这个问题我的 <rich:tabPanel> 的属性成分:
<rich:tabPanel switchType="client" binding="#{tabNavigationBean.tabPanel}"
</rich:tabPanel>

然后在我的 Java bean 中:
private HtmlTabPanel tabPanel; // + getter and setter

public void setTabPanel(HtmlTabPanel tabPanel) {
this.tabPanel = tabPanel;
if (tabPanel != null) {
createTabs();
}
}

private void createTabs() {
Application application = FacesContext.getCurrentInstance().getApplication();
HtmlTab newTab = null;
for (DedicatedPageTab dpt : getDedicatedPageTabs()) {
newTab = (HtmlTab) application.createComponent(HtmlTab.COMPONENT_TYPE);
newTab.setLabel(dpt.getLabel());
newTab.setName(dpt.getName());
tabPanel.getChildren().add(newTab);
}
}

此代码有效 .

但是,我的问题是想知道我是否可以解决我的问题 没有 使用 binding属性(即 100% 纯 XHTML 解决方案)?

最佳答案

<a4j:outputPanel id="out">
<rich:tabPanel>
<c:forEach items="list" var="var">
<rich:tab label="#{var.name}" switchType="client">
content
</rich:tab>
</c:forEach>
</rich:tabPanel>
</a4j:outputPanel>

关于jsf - 有没有办法动态创建<rich :tab> elements?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4022193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com