# JSF - Custom converter Problem



## SaschaLR (6. Jul 2007)

Hallo!

Ich habe einen custom converter geschrieben, der für ein h:selectOneMenu die Klasse User zugänglich machen soll. Es soll User.id - ein long - als value ffür das h:selectOneMenu genommen werden und User.name als label.

Hier die Code-Passagen:

```
<h:outputLabel for="reportedBy">
		<h:outputText value="Gemeldet von: " />
	</h:outputLabel>
	<h:selectOneMenu id="reportedBy" value="#{NewCaseBean.reportedBy}">
		<f:converter converterId="UserConverter" />
		<f:selectItems value="#{NewCaseBean.reporters}" />
	</h:selectOneMenu>
	<h:message for="reportedBy" />
```


```
/* Aus dem Converter */
        public Object getAsObject(FacesContext context, UIComponent component,
			String value) throws ConverterException {
		if (null == value) {
			return null;
		}
		Session session = HibernateUtil.getSessionFactory().getCurrentSession();
		session.beginTransaction();
		User tmpUser = (User) session.createQuery(
				"from User as user where id=" + Long.parseLong(value)).list()
				.get(0);
		session.getTransaction().commit();
		return tmpUser;
	}

	public String getAsString(FacesContext context, UIComponent component,
			Object value) throws ConverterException {
		if (null == value) {
			return null;
		}
		System.out.println(value);
		User tmpUser = (User) value;
		return tmpUser.getId() + "";
	}
```


```
/* Aus der NewCaseBean */
        public Collection getReporters(){
	 	Collection reporters = new ArrayList();
		SelectItem tmpSelectItem;
		for(User tmpUser : loadActiveUsers()){
			tmpSelectItem = new SelectItem(tmpUser, tmpUser.getName());
			reporters.add(tmpSelectItem);
		}
		return reporters;
	}

	public void setReportedBy(User reportedBy) {
		this.reportedBy = reportedBy;
	}

	public User getReportedBy() {
		return reportedBy;
	}
```

So an sich funktioniert das ganze shcon ganz gut. Aber bei der Übernahme bekomme ich die JSF Meldung:



> "reportedBy": Value is not a valid option.



bzw. auf Deutsch:



> "reportedBy": Wert ist keine gültige Auswahl.


Irgendwie kapiere ich da nicht so recht. Was habe ich falsch gemacht oder was genau wird bemängelt?

Danke und Gruß,
Sascha


----------



## SaschaLR (6. Jul 2007)

Manchmal ist es soooo einfach 

Ich musste meiner Klasse User die equals(Object obj) - Methode überschreiben, weil es sonst nicht als ein Objekt der Ursprünglichen Liste identifiziert werden konnte.

Sorry 

Gruß, Sascha


----------



## Gast (9. Jul 2007)

Ich habe auch dasselbe Problem. Das sieht ja aber alles richtig aus.


----------



## Dazz (31. Jul 2007)

Vielen Dank, das hatte noch gefehlt  




			
				SaschaLR hat gesagt.:
			
		

> Manchmal ist es soooo einfach
> 
> Ich musste meiner Klasse User die equals(Object obj) - Methode überschreiben, weil es sonst nicht als ein Objekt der Ursprünglichen Liste identifiziert werden konnte.
> 
> ...


----------

