JSF Composite components - dynamische dataTable?

membersound

Bekanntes Mitglied
Hallo,

ich habe eine Composite componente, in der ich mir eine dataTable definiere.
Ist es möglich, die Anzahl der Columns dynamisch zu machen? Also nur eine column zu definieren, und je nach Anzahl der Parameter immer wieder diese example column Definition aufzurufen?

Oder machen wir mal ein anderes Beispiel: eine composite für eine form mit input fields, bei der die Anzahl der Felder erst beim Verwenden festgelegt werden soll. Geht das?

Normalerweise sieht es ja so aus: ich muss jedes Attribut einzeln definieren, und auch die Verwendung des Attributs einzeln definieren.
Dh wenn ich eine Form mit 4 und eine mit 9 Eingabefelder habe, dann muss ich mir 2 einzelen composite components bauen, obwohl die Logik eigentlich immer die selbe ist...

Geht das nicht einfacher?
Java:
    <composite:interface>
 
    	<composite:attribute name="nameLable" />
    	<composite:attribute name="nameValue" />
//+ x weitere attribute
    </composite:interface>
 
    <composite:implementation>
 
	<h:form>
		<h:panelGrid columns="2">
 
			#{cc.attrs.nameLable} : 
			<h:inputText id="name" value="#{cc.attrs.nameValue}" />

//+ x weitere inputText fields je nach attribute

		</h:panelGrid> 
	</h:form>
    </composite:implementation>
 

membersound

Bekanntes Mitglied
Danke, aber das ist alles nicht das was ich suche.

Ich wollte ja primär solche Aufrufe vereinfachen:

#{cc.attrs.nameLable} :
<h:inputText id="name" value="#{cc.attrs.nameValue}" />

Bzw sie nicht x-mal wiederholen müssen.
Aber mir ist aufgefallen: selbst wenn ich eine Möglichkeit finde, dann fehlt mir immer noch die Möglichkeit meine CC mit varibaler Anzahl von attributen zu füllen.

Also werd ich das wohl so machen, dass ich einfach alles was irgendwo auftritt an attributen in der CC definiere, aber die attribute not required mache. Dann kann ich einfach meine eigene dataTable mit den attributen aufrufen, die ich halt gerade brauche. Und der Rest wird automatisch nicht dargestellt (was ich bisher nicht wusste, grad ausversehen bemerkt).
 

soulspirit

Mitglied
es gibt auch schöne komonenten z.b. von icefaces, das schaut dann ca so aus:
HTML:
<ice:dataTable value="deine reihen als liste" var=xyz varstat=abc>
 <ice:columns value="deine spalten als liste" var=xyz varstat=abc>
    blablabla
 </ice:columns>
</ice:dataTable
 

membersound

Bekanntes Mitglied
Wie kann ich denn eigentlich einer eigenen Composite Componente sagen, dass sie eine andere updaten soll?

Ich habe es jetzt so versucht, dass ich der einen ein "update" attribute mitgebe, dass dann in das update field des buttons in der CC kommt.
Dann habe ich die zweite CC mit genau dieser id annotiert.
Offenbar wird die id auch gefunden, zumindest lässt sich die page einwandfrei aufrufen.

Aber beim click auf den Button passiert rein gar nichts!

(prinzipiell sollte das aber gehen. Wenn ich alles zusammen in eine panelGroup mit autoUpdate packe, dann funktioniert alles im kleinen. Aber ich will die Updates der Komponenten ja selber über id's steuern).

input komponente:
Java:
<composite:interface>
<composite:attribute name="update"/>
</composite:interface>

<composite:implementation>
<p:commandButton value="Create" update="#{cc.attrs.update}" action="register...">
</composite:implementation>


JSF:
Java:
<cc:myInput update=":myDataTable">

<cc:myDataTable id="myDataTable">

Jemand eine bessere Idee?
 

Nogothrim

Aktives Mitglied
gib mal den namen des Forms mit an also :formName:myDataTable
PrimeFaces hats gerne so exakt wie möglich. Sollte auf jeden Fall gehen, update Attribute in eigenen ccs verwenden wir auch massig.
 

membersound

Bekanntes Mitglied
Ok, wenn ich allen enthaltenen Elementen eine id gebe und sie exakt referenziere geht es!

Fragt sich nur, wofür dann diese option prependId="false" gut ist? Wenn ich die nämlich benutze und dann eben die entsprechende id weglasse, wird nichts mehr gefunden...
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Nested Composite Components Web Tier 2
R JSF JSF Composite Components: Problem mit Attributliste und Referenzierung Web Tier 2
L error-page mit ui:composite funktioniert nicht Web Tier 0
M JSF Composite Component Web Tier 8
A JSF ui:insert, ui:composite und ui:define; JSF 2.1 Web Tier 4
T Spaltenüberschriften weg sobald Column als Composite Component Web Tier 4
T DataTable Composite-Component und ManyToOne Web Tier 5
J dynamische jsf-seite programmatisch erstellen Web Tier 1
E Wie kann ich dynamische HTML- Tabellen(-spalten) mit JSP aus SELECT-Anweisung erstellen? Web Tier 2
M JSF Dynamische Größe bei Primefaces Komponenten Web Tier 2
nrg Dynamische Tabelle Web Tier 4
M Problem mit Verlinkung JSP Dynamische Tabelle Web Tier 7
D Dynamische Listen aus der DB holen Web Tier 3
K Dynamische Inhalt auf ein "DIV" laden Web Tier 2
J [JSF] Dynamische Includes (iterative includes) Web Tier 4
MrWhite Facelets: Dynamische Attribute Web Tier 3
Schandro JSP soll dynamische Anzahl an Parametern einer JavaScript-Function erzeugen Web Tier 8
D Richfaces (Seam/Hibernate): dynamische Eingabefelder Web Tier 2
R JSF dynamische Tag Auswahl Web Tier 4
pusteblume Struts multibox - dynamische checkboxen Web Tier 5
L Dynamische Eingabe-Tabelle mit JSF Web Tier 10
G dynamische weboberflächen mit jsf? Web Tier 9
eskimo328 dynamische Navigaiton und JSF (facelets) Web Tier 6

Ähnliche Java Themen

Neue Themen


Oben