# selectOneMenu



## marzelsius (28. Apr 2010)

Hi!

ich probiere gerade mit der selectOneMenu - Komponente unter Seam rum. 

Ich konnte schon die Werte die ich in der "ComboBox" haben möchte laden. 
[XML]
<h:selectOneMenu id="dim" value="#{product.surveyedProductEntity.dimension}" >
  <f:selectItems value="#{ProductDetailsAction.coicopDimensions}"></f:selectItems>
</h:selectOneMenu>
[/XML]

Das HTML das erzeugt wird sieht für mich auch ok aus

```
<option value="l">l</option>
<option value="m">m</option>
```

Leider bekomme ich nur null zurück und nicht den String des Items. 

ich hätte angenommen, dass einfach der Wert der sich in "value" befindet wieder in meine Bean geschrieben wird (so wie bei einem Textfeld)... is leider aber nicht so

Weiß einer von euch wo das Problem steckt?

Gruß


----------



## @x.l (29. Apr 2010)

marzelsius hat gesagt.:


> Leider bekomme ich nur null zurück und nicht den String des Items.



Ich geh mal davon aus, dass du eigene Objekte in deiner ComboBox verwendest.

Wie, Wo und Wann bekommst du null zurück?

Du solltest einen Converter angeben.

[XML]
<h:selectOneMenu id="dim" value="#{product.surveyedProductEntity.dimension}" converter="deinConverter" >
[/XML]


```
@FacesConverter(value = "deinConverter")
public class OwnConverter implements Converter {

	@Override
	public Object getAsObject(FacesContext context, UIComponent uic,
			String value) {
        // hier dein Code
		return null;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent uic,
			Object value) {
        // dein Code
		return null;
	}
}
```


----------



## marzelsius (29. Apr 2010)

@x.l vielen Dank für die Antwort.

Ich übergebe eigentlich nur eine Liste von Strings. (Die dimension Variable ist auch ein String). Die Übergabe funktioniert doch über das <f:selectItems> - Tag oder nicht?

Vorher hatte ich an der Stelle ein InputText und mit dem hat das Binding an die Bean wunderbar funktioniert. Allerdings macht das Binding mit dem selectOneMenu jetzt irgendwie Schwierigkeiten. 

Ich verstehe auch nicht was der Konverter mit meinen Strings machen würde/sollte. 
Hab' auch schon einen geschrieben der immer einen String zurück gibt, denn das Object das übergeben wird ist ja auch ein String


----------



## @x.l (30. Apr 2010)

Also nochmal die Frage: "Wie, Wo und Wann bekommst du null zurück?"

Eigentlich sollte es funktionieren und der Wert in *#{product.surveyedProductEntity.dimension}* landen.

Sollte es immer noch nicht gehen, dann zeig mal mehr Code.


----------



## marzelsius (30. Apr 2010)

@x.l, ich habs jetzt hinbekommen 
zwar nicht mit dem onselectMenu dafür aber mit der rich:comboBox. kA was da den unterschied macht, aber nun geht's :toll:


----------

