rich:tabPanel with dynamically listed tabs
mrface Jul 2, 2010 5:44 AMHi!
I'm using JSF1.2, Richfaces3.3.3, Tomcat6. I try to have a rich:tabpanel with dynamically listed tabs usng <c:forEach> tag:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<jsp:root version="2.0" xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:security="http://www.springframework.org/security/tags">
<jsp:directive.page contentType="text/html;charset=ISO-8859-1"
pageEncoding="ISO-8859-1" session="false" />
<jsp:output doctype-public="-//W3C//DTD XHTML 1.1//EN"
doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
doctype-root-element="html" omit-xml-declaration="false" />
<f:view>
<html>
<head>
<title><h:outputText value="#{msg_bundle.website_title}"/></title>
</head>
<body>
<center><h:form id="main">
<a4j:outputPanel id="tabWrapper">
<rich:tabPanel id="panel_tab" height="500" width="980" >
<rich:tab id="mainoverview">
<f:facet name="label">
<h:panelGroup>
<h:outputText value="Overview" />
</h:panelGroup>
</f:facet>
<h:outputText value="text text tex text" />
<!-- some content -->
</rich:tab>
<c:forEach items="#{dynamicTab.tabs" var="tab" begin="1">
<rich:tab name="tab_#{tab.id}" rendered="true" >
<f:facet name="label">
<h:panelGroup>
<h:outputText value="#{tab.aktenzeichen}" />
</h:panelGroup>
</f:facet>
<h:outputText value="Bericht #{tab.aktenzeichen}" />
</rich:tab>
</c:forEach>
</rich:tabPanel>
</a4j:outputPanel>
</h:form></center>
</body>
</html>
</f:view>
</jsp:root>
<c:forEach> just doesn't print any output. When I remove begin="1" in this Tag I get exactly one added tab without any label or content.
I tried to use <a4j:repeat> and <ui:repeat> as well, but as everybody on the internet says, it's just not compatible with <rich:tabpanel>
Here's my Session Bean and a Model:
public class DynamicTab {
private List<CustomTab> tabs;
int i=1;
public DynamicTab() {
tabs= new ArrayList<CustomTab>();
tabs.add(new CustomTab(i++,"test"));
}
public List<CustomTab> getTabs() {
return tabs;
}
}
/*******************************************/
public class CustomTab {
private int id;
private String aktenzeichen;
public CustomTab() {
// TODO Auto-generated constructor stub
}
public CustomTab(int id, String aktenzeichen) {
this.id= id;
this.aktenzeichen= aktenzeichen;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getAktenzeichen() {
return aktenzeichen;
}
public void setAktenzeichen(String aktenzeichen) {
this.aktenzeichen = aktenzeichen;
}
}
I can list the content of my tab list within a panel with a4j:reapeat and in the console. so there is data.
Any ideas why - the f*** - there is no output or error message?
regards