# Cast selectItem zu Entity



## nimo22 (2. Jul 2008)

double post


----------



## SlaterB (2. Jul 2008)

das SelectItem wird doch wohl der/ die/ das Role als Value enthalten?

also for-Schleife für die roles-List, den jeweiligen Value extrahieren, diesen  dann casten und woanders einfügen


----------



## nimo22 (2. Jul 2008)

double post


----------



## SlaterB (2. Jul 2008)

das SelectedItem ist nicht selber die Role, sondern getValue() vom SelectedItem!


----------



## nimo22 (2. Jul 2008)

double post


----------



## SlaterB (2. Jul 2008)

was hat mailroomsByIdUser auf einmal mit dem bisherigen zu tun?

> Weil sonst hab i keinen Zugriff auf .getValue()

an welcher Stelle?

wenn du deinen 35-Zeilen-Code-Block meinst,
dann hast du doch da bereits 
List<SelectItem> rolesGUI
da musst du nur noch die Elemente herausholen,

ich sehe da gerade auch
> for (Iterator i = (Iterator) this.getRolesGUI(); 

eine Liste kannst du nicht auf Iterator casten..,
schau dir doch erstmal Grundlagen zur Arbeit mit Listen und Iteratoren an


----------



## nimo22 (2. Jul 2008)

ahhh..also mit rolesGUI.getValue() hol ich mir die Elemente der Liste aus List<SelectItem> rolesGUI über ne normale Schleife heraus und caste sie mit: ((Roles) rolesGUI.getValue())

i versuchs..dank vorab

(das vorher war n copy-paste-fehler..-)


----------



## SlaterB (2. Jul 2008)

rolesGUI ist die Liste selber, da kannst du offensichtlich nichts sinnvolles aufrufen außer die einzelnen SelectedItems mit get(index) herauszuholen,
auf ein SelectItem kannst du getValue() aufrufen..


----------



## nimo22 (2. Jul 2008)

double post


----------



## SlaterB (2. Jul 2008)

offensichtlich sind die Values Strings und nicht Roles,
ob das immer so ist bei einer selectManyCheckbox kann ich persönlich nicht sagen,
macht bei HTML-Übertragungen aber ziemlich Sinn,

dann musst du nun noch selber vom Namen auf die Role-Objekte schließen


----------



## nimo22 (2. Jul 2008)

double post


----------



## Guest (3. Jul 2008)

hab das jetzt so versucht, um von einen java.lang.String-Object zu einem Role-Objekt zu kommen:


```
for (Iterator i = roles.iterator(); i.hasNext();) {


Object m = (Object) i.next();
Role o = (Role) m.getClass().cast(role);

}
```
jetzt kommt keine fehlermeldung. aber casten tut er mir das NICHT.

wie geht das nur??


----------



## SlaterB (3. Jul 2008)

ein String ist keine Role genau wie SelectedItem,

was immer ein Role auch ist, stelle dir vor du liest einen ganz normalen String 'x' aus einer Datei oder aus einem JTextField,
das ist nur eine einfache Zeichenkette, nicht weniger aber auch garantiert nicht mehr,
wenn du ein Role-Objekt mit diesem Namen hast, dann musst du das manuell zuordnen, aber nicht durch irgendwelche casts,
sondern

Role role = null;
String name = ..;
if (name.equals(roleX.getName()) {
 // richtige Role gefunden
 role = roleX;
}

sowas geht recht gut mit einer Map,

-------

da du anscheinend von all dem sehr wenig Ahnung hast, denke ich dass eine Web-Anwendung zu hoch für dich ist,
mir ist das jedenfalls zu zeitintensiv und zu wenig effizient,
ich werde nicht mehr antworten,

viel Glück weiterhin


----------



## nimo22 (3. Jul 2008)

ahhh..danke habs gelöst..hab einfach nen standard jsf-converter benutzt..hehe..d.h. dann nicht casten sondern konvertieren!

keep it simple, dennoch danke für deine hilfe


----------

