h:selectOneMenu und Page-Refresh

J

JSF2

Gast
Hi,

ich setze JSF 2.0, RichFaces 3.3 und Spring Web Flow 2.1 ein und habe auf meiner Maske zwei Eingabefelder die die Attribute des ausgewählten Objekts beinhalten und eine Drop-Down-Box, über die der Benutzer ein Objekt auswählen kann. Nun möchte ich, dass wenn der Benutzer in der Drop-Down-Box ein anderes Objekt wählt, die zwei Eingabefelder bzw. dessen Inhalt auf das neue Objekt angepasst werden. Hierbei soll kein submit-Button oder ähnliches verwendet werden!

Mein aktueller Code sieht bisher folgendermaßen aus:
[XML]
<h:selectOneMenu id="selectObject" value="#{objectBean}">
<f:selectItems value="#{objectVector}" var="selectedObject" itemValue="#{selectedObject}" itemLabel="#{selectedObject.description}"/>
<a4j:support id="sessionAjax" event="onchange" reRender="showObject" ajaxSingle="true"/>
</h:selectOneMenu>
...
<a4j:eek:utputPanel id="showObject">
<h:inputText value="#{objectBean.name}" />
<h:inputText value="#{objectBean.description}" />
</a4j:eek:utputPanel>
[/XML]
und das Ganze natürlich in einer Form!

Meine Konfiguration von Spring Web Flow:
[XML]
<view-state id="Object" view="/Object.jsp">
...
<transition on="onchange" to="Object">
<render fragments="form1:showObject" />
</transition>
</view-state>
[/XML]

Allerdings habe ich das Gefühl, dass die Transition garnicht erst gestartet wird!?
 
M

Michael Rother

Gast
Kenne mich mit Spring nicht so aus, aber ich vermute, dass dein Wert nach der Auswahl im SelectOneMenu gar nicht an Dein Backing-Bean durchgereicht wird da kein Submit kommt.

Habe das in einem ähnlich gelagerten Fall wie folgt gelöst [keine Garantie, dass das die beste Variante ist, aber es funktioniert :)]

Ich brauche ein Script, dass eine Funktion im Backend aufruft und einen übergebenen Wert (ID des ausgewählten Eintrages) an eine entsprechende Methode durchreicht ...

Java:
<h:form>
	<a4j:jsFunction name="setSelectedType">
		<a4j:actionparam name="type" assignTo="#{chartBean.selectedChartType}"/>
		<a4j:support event="oncomplete"   reRender="lineChart"/>
	</a4j:jsFunction>
</h:form>

Der Auswahl-Block sieht dann folgendermaßen aus:

Java:
<h:form id="ChartForm">

	<div id="dropDownDiv">
		<h:selectOneMenu id="TypeDD" value="#{chartBean.selectedChartType}" onchange="setSelectedType(this.value)">
			<f:selectItems value="#{chartBean.lineChartSelectItems}" />
		</h:selectOneMenu>			
	</div>
	<div id="chartDiv">
		 <p:lineChart id="lineChart" value="#{chartBean.entries}" var="entry" xfield="#{entry.label}" style="chartStyle">  
		     <p:chartSeries label="XYZ" value=" #{entry.value}" />  
		 </p:lineChart>
	</div>
	
</h:form>

hoffe das hilft vielleicht irgendwie weiter.
 
J

JSF2

Gast
Dank dir schonmal für deine Antwort!

Du hast Recht, dass kein Submit erfolgt! Deshalb habe ich meinen Code wie folgt geändert:
[XML]
<f:view>
<h:messages />
<h:form id="form1">

<h:panelGroup>
<h:selectOneMenu id="selectObject" value="#{objectBean}">
<f:selectItems value="#{objectVector}" var="selectedObject" itemValue="#{selectedObject}" itemLabel="#{selectedObject.name}" />
<a4j:support event="onchange" reRender="showObject" action="SELECT" />
</h:selectOneMenu>
<a4j:status startStyleClass="errorStyle" startText="Please Wait..."/>
</h:panelGroup>

<a4j:eek:utputPanel id="showAbt">
<h:messages />
<h:inputText value="#{objectBean.name}" />
<h:inputText value="#{objectBean.description}" />
</a4j:eek:utputPanel>

</h:form>
</f:view>
[/XML]

Da action="SELECT" ist und eine Transition "SELECT" in Spring Web Flow existiert, werden dort die erforderlichen Werte gesetzt, ...!
Soweit so gut, allerdings funktioniert das Ganze nur, wenn der Vector nur Strings enthält und der obige Code angepasst wird bzw. speziell die Methodenaufrufe entfernt werden. Beinhaltet der Vector wie im obigen Fall Objekte, erhalte ich mit h:messages folgenden Fehler:
Konvertierungsfehler beim Festlegen von Wert '[..., ..., ...]' für 'null Converter'.

Ich vermute, dass JSF nun die Objekte nicht mehr zurückkonvertieren kann, weil es die Klasse nicht kennt! Wie kann ich JSF nun mitteilen, von welchem Klassentyp die Objekte sind?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JSF (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt Web Tier 0
C selectOneMenu mit valueChangeListener im <p:dialog Web Tier 2
F JSF h:selectOneMenu Wert vorbelegen klappt nicht? Web Tier 2
M Converter für SelectOneMenu Web Tier 3
Phash JSF - SelectOneMenu Property anzeigen Web Tier 3
F JSF p:selectOneMenu Session Web Tier 10
S JSF SelectOneMenu - Probleme mit AJAX Web Tier 6
F PrimeFaces - selectOneMenu Web Tier 2
F PrimeFaces p:selectOneMenu funktioniert nicht Web Tier 12
H JSF Textarea nur einblenden, bei bestimmter Auswahl in SelectOneMenu Web Tier 6
H JSF SelectOneMenu und der Converter Web Tier 3
F JSF ValueChangeListener in editable p:SelectOneMenu Web Tier 3
NoXiD JSF h:selectOneMenu - änderungen nicht übernommen Web Tier 14
P SelectOneMenu liest Daten nicht ein Web Tier 7
J JSF 2.0 h:selectOneMenu mit enums Web Tier 4
M selectOneMenu Web Tier 4
I selectOneMenu - Problem Web Tier 6
M SelectoneMenu Default Wert Web Tier 4
ModellbahnerTT JSF selectOneMenu Web Tier 15
J Datenübergabe aus selectOneMenu Web Tier 2
F Unterschied h:selectOneMenu zu rich:comboBox Web Tier 4
E Wert aus JSF-Selectonemenu in Textfeld schreiben Web Tier 4
A JSF SelectOneMenu mit Werten aus Bean vorbelegen Web Tier 2
M SelectOneMenu mit Inhalt aus DB Web Tier 2
J Wicket: Füllen von Textarea via AJAX irgendwo auf der PAGE Web Tier 1
L error-page mit ui:composite funktioniert nicht Web Tier 0
A JSF JSF Page dynamisch/modular aufbauen Web Tier 7
S Fehlerseiten (error-page) Web Tier 6
G JSP mit JS in den page- scope setzen Web Tier 5
P Master Page in JSF Web Tier 7
J error-page geht nicht Web Tier 12
B Probleme mit <jsp:include page=""/> und Laufzeit Web Tier 7
D JSF+Weiterleitung zu einer Login-Page Web Tier 1
T [jsf] Navigations- und Page-Reloadproblem Web Tier 15
M JSP JSP in JSP mit refresh einbinden Web Tier 5
P JSF Ajax refresh nach Linkklick Web Tier 4
R JSF und Browser Refresh Web Tier 7
M JSF refresh vs. session scope Web Tier 9

Ähnliche Java Themen

Neue Themen


Oben