Erlaubte Klassen für h:selectOneListbox Iteration?

Status
Nicht offen für weitere Antworten.

Zockrates

Mitglied
Hallo!

Ich bin langsam am verzweifeln... Ich möchte eigentlich nur für h:selectOneListbox über ein SelectItem[] oder eine HashMap<String,Object> iterieren, und den value (also das mit dem key verknüpfte object) speichern. Meine index.jsp sieht folgendermaßen aus:

HTML:
<h:form>

<h:selectOneListbox value="#{input.selectedOption}" size="1">
   <f:selectItems value="#{input.options}"/>
</h:selectOneListbox>

<p><h:commandButton value="next" action="next" /></p>

</h:form>

Die input-Methoden sehen folgendermaßen aus:

Java:
	public SelectItem[] getOptions() {
		return options;
	}
	public void setOptions(SelectItem[] options) {
		this.options = options;
	}
	public void setSelectedOption(InputOption selectedOption) {
		this.selectedOption = selectedOption;
	}

Die SelectItems bestehen jeweils aus einem label und einem InputOption-Objekt als value. (Ich habe das ganze auch mit einer HashMap<String,InputOption> versucht, es passiert genau das selbe).

Nun ist es so, dass die labels in der Listbox korrekt angezeit werden, die Form wird beim Drücken des buttons aber gar nicht erst submitted, der button klickt nur und die webseite bleibt statisch. Jetzt das kuriose: ändere ich die setSelectedOption-Methode so, dass sie statt InputOption einfach "Object" als parameter nimmt, funktioniert die Navigation einwandfrei, d.h. meinem bean wird wohl nicht wie gedacht ein InputOption-Objekt übergeben... lasse ich übrigens dann Object.toString() ausgeben, bekomme ich
sowas wie "InputOption@26faf2", hm.

Kann es also sein, dass hier nur manche Objekte unterstützt werden, wie Strings und Integers? Laut CoreJSF sollte es mit allen funktionieren :(

Verzweifelte Grüße,

Zockrates
 

Prismapanda

Aktives Mitglied
Es werden alle Objekte unterstützt, solange du jsf sagst, wie es das Objekt im Quelltext darstellen soll. Bei Strings und Integers ist das eindeutig, bei eigenen bzw. komplexen Objekten dagegen nicht.
Das ganze nennt sich dann Converter. Der Converter muss das gleichnamige Interface implementieren, dann in der faces-config eingebunden werden und kann dann mit dem <f:converter /> Tag in das selectOne Tag eingehängt werden.
Du musst halt bedenken, dass du nicht einfach beliebige Objekte in HTML pressen kannst. Eigentlich hätte es da ne Fehlermeldung geben müssen, allein dann wenn der submit Button nicht submitted. Welche JSF Implementierung benutzt du bzw. hast du Fehlermeldungen aufm Schirm? Die Objekte werden wohl deshalb richtig angezeigt, weil du im SelectItem das Label richtig gesetzt hast. Nur ist der value halt "konvertierungsbedürftig"...
 

Zockrates

Mitglied
Danke für die schnelle Antwort!
Ich werde mir jetzt wohl das Kapitel über Custom Converters zu Gemüte führen, mal sehen ob ich es dann hinbekomme. Ich habe soeben gemerkt, dass ModellbahnerTT in seinem Thread "JSF selectOneMenu" das selbe Problem hat wie ich, die Antworten helfen mir bestimmt auch weiter. Ich melde mich wieder, wenn es (hoffentlich) funktioniert.

p.s. Ich verwende die neueste Eclipse Java EE IDE mit Glassfish... Fehlermeldungen habe ich eigentlich keine bekommen, ich wüsste prinzipiell auch gar nicht, wo ich diese nachzuschlagen hätte? in den log-Files?

thx,
Zockrates
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
LimDul Komplexe Generierung von Java-Klassen aus WSDL Web Tier 1
iman Css-Klassen mit Thymeleaf Web Tier 7
J JSF-Komponente, in der man ein Klassen-Diagram erstellen kann Web Tier 0
A JSF WebappClassloader.modified() aktualisiert Klassen nicht Web Tier 2
T Tomcat: Packete dynamisch auslesen und Klassen erzeugen Web Tier 3
F GWT Widgets aus Klassen heraus ansprechen... Web Tier 4
S Stehen alle Klassen der JRE zur Verfuegung..? Web Tier 14
D Servlet-Klassen und Templates trennen? Web Tier 18
A JSF Suche Beispiel für Primefaces Tree als Navigation Web Tier 3
S Seite nur aufrufbar machen für eingeloggte User Web Tier 1
R JavaScript für Java Enterprise Entwickler Web Tier 1
G JSF Webanwendung Editor für JSON gesucht Web Tier 1
S JSP Hm... Vorlage für Java Basierende Webseite? Web Tier 0
J Funktion für AJAX - Problem mit Return Web Tier 14
D Servlet 1 Servlet für alles - Wie Cookies per Ajax? Web Tier 1
R JSF Zugriff für Helpdesk-Mitarbeiter Web Tier 15
I Autocomplete Google Maps für JSF Web Tier 0
W Servlet SPEICHERN UNTER-Dialog für mehrere Dateien Web Tier 4
M JSF Framework für User Management etc. Web Tier 0
D Welches Webframework für REST geeignet Web Tier 1
L java.io.NotSerializableException für domain Objekte - Design Problem? Web Tier 12
M Converter für SelectOneMenu Web Tier 3
J eigene taglib für jsf 2.0 schreiben Web Tier 21
S Empfehlung für stateless Webframework Web Tier 2
J mögliche 'eigene' Konfigurationen für die Web.XML auflisten lassen Web Tier 4
H Singleton für In-Memory-Caching in WebApp Web Tier 4
F Wo und wie Daten die für alle Benutzer bestimmt sind verwalten Web Tier 4
S beste Preis/Leistung für Server Web Tier 3
H Relativer Pfad für XML-Datei in JSP-Anwendung Web Tier 3
S Welcher ansatz für Web Application + Web Service Web Tier 5
M JSF Converter für String to List<String> Web Tier 2
R Servlet Resource laden für SMTP - Session Web Tier 4
T JSF Eigener Converter wird nur für Eingabekomponenten aufgerufen? Web Tier 3
O Welche JSF Implementation ist am besten für mich geeignet ? Web Tier 3
T Sprachenauswahl für Projekt Web Tier 3
M JSF Komponentenframework für Web/JSF? Web Tier 7
M JSF Simple Testklasse für Button - MethodNotFoundException? Web Tier 6
B JSF JSF1.1 @Tomcat 5.5 für ein neues Projekt Web Tier 18
I Anwendungsfälle für OO Vererbungshierarchien bei Webapps Web Tier 4
D Struts Mehrsprachigkeit in textfield für key ja, aber für label nein? Web Tier 4
M Classpath für JPA in Tomcat Webapp: Wie konfigurieren? Web Tier 4
S ClassPath für Servlet Web Tier 3
J Welches Framework für Webentwicklung? Web Tier 13
T Plugins für Eclipse Web Tier 9
T JSF Zwei Listen/Vectoren für f:selectItems verknüpfen - möglich? Web Tier 2
ruutaiokwu JSF nur für die präsentation verwenden? Web Tier 4
S Ein ControllerServlet für andere Servlets - Sinnvoll oder nicht? Web Tier 34
C Webspace bzw. Server für GWT Web Tier 5
O Testframework für Webanwendung? HTMLUnit? Web Tier 3
C CMS für GWT Anwendung Web Tier 2
T SVG für JSF2 Web Tier 8
Java.getSkill() Lerngruppe für Tapestry 5 Web Tier 21
T Template für die ganze Seite Web Tier 6
Spin JSF oder PHP für Web Web Tier 4
M Java Framework für größere Projekte verwenden Web Tier 5
R Exception? Was für ein Fehler? Web Tier 3
J DataScroller: rowCount für Folgeseiten übernehmen Web Tier 2
M Tomcat - Mehrere Verzeichnisse für die jsp Web Tier 12
N JMX MBean für JBoss 4.2.2 Web Tier 4
E Mime-Type für unbekanntes Programm Web Tier 6
M Best Practice für "Teilnahmebediengung akzeptieren" Web Tier 2
M JSP Custom Tag für Bilder Web Tier 14
H Gibt es für das message-bundle eine Standard - Ordnung? Web Tier 2
J Welcher WebServer(-anbieter) für Servlets? Web Tier 5
N Webfrontend für vorhandenes Programm Web Tier 2
A Einfaches Filter-Servlet für Benutzer-Validierung Web Tier 3
R <fmt:formatDate> und 2 Zeichen für den Wochentag? Web Tier 2
T Ajax / Javascript Plugin für Eclipse Web Tier 1
T Was nehmen für eine Datenbankapplikation mit Webinterface Web Tier 5
G wert für hiddenfield per javascript setzten Web Tier 4
K Escape Charakter für EL Web Tier 4
leifg Parameter für Tags aus String lesen (JSP 1.2) Web Tier 2
N JSF: Servlet für Bilder: Verbindung zu Spring Service ? Web Tier 1
S Mehrere Styleklassen für Tabellenreihen Web Tier 4

Ähnliche Java Themen

Neue Themen


Oben