ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1096
1096
EMPFEHLEN
-
Hi!
Ich hab so meine liebe Not mit den RichFaces Komponenten...
Folgendes Szenario: In einer Bean habe ich eine Liste von Objekten, jedes davon soll einen eigenen Tab bekommen. Von der Theorie doch ganz einfach: TabPanel auf, Schleife rein und in die Schleife jeweils ein Tab erzeugen. Etwa so:
Code :1 2 3 4 5 6 7 8
<rich:tabPanel switchType="client" id="tabs"> <ui:repeat value="#{bean.Liste}" var="element"> <rich:tab label="#{element.name}"> ... </rich:tab> </ui:repeat> </element> </rich:tabPanel>
Soweit sieht das doch gut aus - zumindest in der Theorie. Praktisch umgesetzt führt das dazu, dass gar nichts angezeigt wird. Lediglich die Ausgabe
weist darauf hin, dass irgendwas schief läuft."2010-02-26 16:58:34.301:INFO
roject:a4j_form:msgDetails: tab panel has no enabled or rendered tabs!"
Testweise das repeat um den gesamten Panel, und schwupps: Ich sehe 2 korrekt dargestellte, korrekt benannte
Tabs - nur leider einzeln in einen Panel verpackt, hilft mir also nicht wirklich.
Nun denn, ich bin ja schon groß und kann schon ganz alleine googeln! Und siehe da: "Nimm c:forEach statt ui:repeat". Auch gut! Also die Schleife wieder nur um die Tabs rum und umbenannt (statt "ui:repeat" ein "c:forEach", statt value heißt es nun items, der Rest bleibt wie er ist!). Ganz toll: Immerhin sehe ich jetzt einen
Tab, aber der hat nicht mal ein Label bekommen! Zugriffe auf das 'element' werden anscheinend ignoriert, aber Werte aus der Bean (z.B. "#{bean.getSimpleString}") werden korrekt ausgewertet.
Noch mal zusammengefasst: ui:repeat klappt nicht innerhalb des TabPanels, und das forEach scheint auch nicht korrekt zu sein. Was mache ich falsch?
Thx, Gruß,
RoCMe
-
Ich noch mal:
Fast scheint es, als wäre ich für die Verwendung von c:forEach generell zu doof, liefert doch auch dieses aus dem Web kopierte einfache Beispiel nur ein einziges Hallo - und sonst nichts weiter
Code :1 2 3 4 5 6 7 8
<table> <c:forEach var="i" begin="1" end="10"> <tr> <td>Hallo</td> </tr> </c:forEach> </table> </c:forEach>
Was mache ich falsch?
EDIT: XHTML ein wenig formatiert
-
Hi,
ich verfolge bei so etwas einen anderen Ansatz. Wird hier in einem Blog beschrieben, nicht meiner
Der Code im xhtml/jsp ist dann recht rudimentär
Das dynamische erzeugen ist in die Backing Bean verlagert. Die sollte dann am besten nicht im Request Scope stecken.HTML-Code:<f:view> <h:form id="form_dynamic_tabs"> <rich:tabPanel id="panel_tab" binding="#{dynamicTab.tabPanel}"> </rich:tabPanel> </h:form> </f:view>
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
package de.sentoo.jsf.dynamictab; // imports ... public class DynamicTab { private HtmlTabPanel tabPanel; public DynamicTab() { super(); FacesContext tmpContext = FacesContext.getCurrentInstance(); Application tmpApplication = tmpContext.getApplication(); tabPanel = (HtmlTabPanel)tmpApplication .createComponent(HtmlTabPanel.COMPONENT_TYPE); createDynamicTabs(tmpApplication); } private void createDynamicTabs(Application aApplication) { for(int i=1; i<5;i++) { HtmlTab tmpTab = (HtmlTab)aApplication .createComponent(HtmlTab.COMPONENT_TYPE); String tmpLabel = "Dynamic Panel #" + String.valueOf(i); tmpTab.setLabel(tmpLabel); String tmpId = "dynamic_panel_" + String.valueOf(i); tmpTab.setId(tmpId); tabPanel.getChildren().add(tmpTab); } } public HtmlTabPanel getTabPanel() { return tabPanel; } public void setTabPanel(HtmlTabPanel aTabPanel) { this.tabPanel = aTabPanel; } }
Edit #1:
Ach ja, ich habe gar nicht geschrieben, warum ich das mache
http://www.ilikespam.com/blog/c:fore...at-in-facelets
http://drewdev.blogspot.com/2008/08/...-your-day.html
Es funktioniert leider nicht immer.Geändert von Sentoo (02.03.10 um 06:57 Uhr)
Ähnliche Themen
-
Generisch mehrdimensionale Arrays erzeugen?
Von dbzworld im Forum JavaAntworten: 7Letzter Beitrag: 12.12.09, 18:06 -
Generisch (My)SQL Datenbank ausgeben, php/ruby Klasse?cms?
Von Badmaster im Forum PHPAntworten: 3Letzter Beitrag: 07.09.09, 18:36 -
MySqlDataReader Resultat "generisch" speichern
Von ChristianR1905 im Forum .NET DatenverwaltungAntworten: 3Letzter Beitrag: 07.08.08, 09:59 -
Generisch Programmieren
Von Klatz im Forum Java GrundlagenAntworten: 8Letzter Beitrag: 18.06.08, 14:56 -
Blend+XAML] TabPanel zu ResourceDict hinzufügen
Von Moritz123 im Forum .NET Windows FormsAntworten: 0Letzter Beitrag: 05.05.07, 20:58





Zitieren
Login




