# Suche bestimmte JSF 2 Komponente



## kossy (27. Jul 2012)

Hallo zusammen !

Ich such suche eine ganz bestimmte Art von Komponente in JSF 2.0. Ich suche eine Art Tabelle, mit der ich Daten erfassen kann (ich möchte unabhängig von externen Ajax Komponenten sein, die in vorherigen JSF Version existierten). 

Ich selbst muss die Spaltenanzahl und Beschriftung selbst festlegen können und auch eine Zeilenmäßige Erweiterung der Erfassungstabelle muss problemlos über die JSF Seite möglich sein.

Für den Datenoutput habe ich bereits etwas gefunden, nämlich <h:dataTable>, aber noch nichts passendes zum Erfassen von daten über eine Gui. Oder existiert so etwas nicht und muss ich das selbst nachbauen? 

Grüße und Danke !
Kossy


----------



## qw345 (27. Jul 2012)

http://www.java-forum.org/web-tier/86529-tabellen-jsp.html


----------



## F.S.WhiTeY (27. Jul 2012)

Moin,

das geht nun nicht gegen den vorposter persönlich aber wenn ich JSP lese könnte ich kot***.
JSP ist mehr als out und der TE hat expliziet nach JSF gefragt. 

Antwort für den TE:

Was du suchst leistet fast jede JSF-Komponentenerweiterung. Einfach mal bei Primefaces reinschauen

z.B.: PrimeFaces - ShowCase

oder bei Richfaces reinschauen

z.B.: Ganz unten auf der Page

Dann gibt es ja noch dieverse andere wie MyFaces. Du kannst dir deine Komponenten natürlich auch selber schreiben. Das ist zwar ein wenig aufwendiger aber mit JSF 2.0 nicht unmöglich. 

HTH

David


----------



## kossy (28. Jul 2012)

Hallo nochmal !

Danke für den Tipp mit den Rich Faces und Prime Faces. Da ich neu in diesem Bereich bin, stellt sich die Frage, welche dieser Facestypen eher zu bevorzugen ist. Ist das abhängig vom Aufgabeneinsatz, oder ist egenerell einer der beiden zu bevorzugen?

Grüße
Kossy


----------



## Fant (28. Jul 2012)

Das sind keine "Facestypen", sondern verschiedene Komponentenframeworks zu JSF, sprich einfach nur Erweiterungen. Du kannst in einem Projekt auch beide Erweiterungen mischen. Ob sich das dann allerdings wirklich immer miteinander verträgt, ist eine andere Frage, aber denkbar ist es wenigstens.

Ich selbst benutze hauptsächlich Primefaces. Ich denke, das ist aber mehr eine Glaubensfrage, was man nun bevorzugt. Bei PF geht die Entwicklung jedenfalls rasend schnell voran und so weit ich weiß ist es auch verhältnismässig wenig verbuggt. 
Aber es hindert einen ja auch nichts daran einfach mal mit mehreren ein wenig herumzuspielen.


Du schreibst aber du "möchte(st) unabhängig von externen Ajax Komponenten sein, die in vorherigen JSF Version existierten". Die entsprechenden Komponenten aus PF oder RF sind aber wieder genau so etwas! 
Geht es dir denn überhaupt darum bestehende Einträge zu editieren, oder suchst du einfach noch zusätzlich nach einer Eingabemöglichkeit für neue Datensätze? Dafür wirst du doch vermutlich eh ein gesondertes Eingabeformular benötigen. Ob du das nun in die DataTable direkt mit einbindest oder nicht, sei erst mal dahingestellt. Wenn es dir aber nur darum geht, dass die Tabelle bei einer wachsenden Anzahl von Einträgen mitwächst, dann brauchst du keine Erweiterungen, denn das macht eine <h:datatable> doch eh. Du könntest du auf deine JSF-Seite einfach ein Eingabeformular setzen und darunter die DataTable und nach dem Einfügen eines neuen Datensatzes lädst du entweder die DataTable oder die ganze Seite neu.

Ist halt die Frage, was du tatsächlich genau willst. Wenn es ok ist, dass Eingabe neuer, das Editieren von bestehenden und die Anzeige aller Datensätze etwas verteilt sind, dann geht das recht problemlos auch mit JSF2-Boardmitteln. Für so eine schöne "in-place-Lösung"-wie in dem verlinkten Beispiel auf der Primefaces-Seite, wirst du aber wohl nicht um JavaScript/AJAX herumkommen. Da dann also entweder selbst was bauen, oder auf Komponenten zurückgreifen, die schon tausend mal getestet wurden.


----------



## kossy (30. Jul 2012)

Hallo !

Also ich möchte im Prinzip, dass über eine Tabelle Datensätze aus einer Datenstruktur (bspw. eine List) angezeigt werden und vereinzelt und gezielt auch über die Tabellenkomponente auf der GUI verändert werden können. Desweiteren soll problemlos ein neuer Datensatz hinzugefügt werden und auch gelöscht werden können. Funktioniert das alles über DataTable? 

Grüße
Kossy


----------



## JimPanse (30. Jul 2012)

Schon etwas älter aber wenn du ohne Erweiterung auskommen möchtest:

Datatable. Im Prinzip kannst du die Aktionen mit der neuen <f:ajax> Komponente 'ajaxfizieren'.

Greetz


----------



## qw345 (30. Jul 2012)

@F.S.WhiTeY#


Anstatt hier rum zu meckern hättest du den Link geöffnet und dort die Hinweise zu *.faces gefunden

Lesekompetenz erhöhen


----------



## F.S.WhiTeY (30. Jul 2012)

> Creating Highly Functional Tables in *JSP* Using DisplayTag and JavaScript



Also ich hab keine Ahnung wo Du da Faces gelesen haben willst. Ich meine OKKKKK vor ein paar Jahren wurden JSP in JSF mal genutzt aber ich kann mich nur wiederholen:

Das ist alt, wird nicht mehr genutzt, wird nur zu Kompatibilitätszwecken aufrecht gehalten und deine Lesekompetenz scheint weit niedriger zu sein als meine.

Wenn sie höher wäre hättest du vilt. mitbekommen das in de JSR 303 JSF und Facelets zum Standart erklärt wurden und JSP rausgenommen worden sind. 

Wenn man keine Ahnung hat ......

Aber Du darfst gerne mal den Link zitieren den Du meinst. Wenn es keinen Link gibt und du die Textpassage meinst: 

Tolle Art jemanden einen Beitrag vor die Nase zu setzen wo irgendwo mal jemand davon spricht dass er JSF und icefaces oder richfaces benutzt.


----------



## qw345 (31. Jul 2012)

Ganz langsam auch für dich:

Der Link

http://www.java-forum.org/web-tier/86529-tabellen-jsp.html

klick

Der Text in Beitrag #3

...wenn man mit JSF arbeitet, einfach richfaces, icefaces, myfaces etc.. da gibts jede Menge schicke Tabellenkomponenten.


----------



## F.S.WhiTeY (31. Jul 2012)

> Aber Du darfst gerne mal den Link zitieren den Du meinst. Wenn es keinen Link gibt und du die Textpassage meinst:
> 
> Tolle Art jemanden einen Beitrag vor die Nase zu setzen wo irgendwo mal jemand davon spricht dass er JSF und icefaces oder richfaces benutzt



Der Thread behandelt ein anderes Thema und das ist verwirrend. Das ist keine Art. Ich empfehle dir auch kein JSP-buch wo auf Seite drei erklärt wird das es JSF gibt.


----------



## freez (1. Aug 2012)

kossy hat gesagt.:


> Funktioniert das alles über DataTable?



Nur bedingt. Prinzipiell zeigt eine DataTable nur Daten an. In Primefaces gibt es ein nettes Feature, welches ein Editieren der Daten innerhalb der Tabelle erlaubt. Löschen müsstest du von Hand integrieren, z.B. mit einem LöschButton pro Datensatz, oder durch markieren einer Zeile und Button außerhalb der Tabelle klicken ... ist aber kein Hexenwerk.

Erstellen des Datensatzes musst du wohl komplett selbst machen. Hier kommt der Aufwand darauf an, wie du es darstellen möchtest. Ein extra Formular vor oder nach der Tabelle oder in einem modalen Dialog sind wohl die einfachsten Möglichkeiten. Schwieriger wird es, wenn du es aussehen lassen willst, als wenn eine neue Zeile an der Tabelle erstellt wird und dort Eingabe Felder erscheinen. Vielleicht kannst du so vorgehen: ergänze immer ein leeres Element an die Tabelle. Mit dem Klick auf Editieren (siehe Editieren innerhalb der Tabelle von Primefaces) kannst du die leeren Informationen überschreiben und speichern bzw. bei Bedarf verwerfen.

Mit dem "Speichern" Klick lädst du die Datatable neu (entweder die Seite laden, oder per Ajax).


----------

