Forum İçeriği > Java Server Faces > jsf enum type
|
|
Serhat Meşe 26 ay önce
Aktivite Puanı: 62
Merhaba, Burada gordugum kadariyla EnumSet.range yontemini yanlis
kullaniyorsun. Bu yontem senden enumdaki degerlerinden bir aralik bekliyor.
Senin enum tipinde iki tane enum degeri var o yuzden, EnumSet enumSet =
EnumSet.range(PersonType.PHYSICAL_PERSON, PersonType.LEGAL_PERSON);
seklinde kullanman yeterli olur. Buradaki Set'in icine PHYSICAL_PERSON'dan
LEGAL_PERSON'a kadar olan enumlarin girmekte. Sen ise iki tane null veriyorsun
ve bunlarin arasindaki enum degerlerini al diyorsun... Bu degisikligi yapman
yeterli olacaktir sanirim. Ama enumset kullanmadan da yapabilirsin bu isi.
values yontemini kullanarak. for(PersonType pType: PersonType.values()){
SelectItem sItem = new SelectItem(pType.name()); items.add(sItem); } Bu
sekilde listeni string degerlerle doldurabilirsin, daha sonra da secilen string
degeri beande alip hangi enuma denk geldigini bulabilirsin. Converter
kullanmana da gerek kalmaz boylece... Kolay gelsin.
|
|
|
ertugrula 26 ay önce
Aktivite Puanı: 156
Hocam cok cok tesekkur ederim, yine cok buyuk yardiminiz oldu, tekrardan cok
tesekkur ederim, bende ilk kullandigimda buna benzer bi kullanim yapmistim,
ancak values kullanamamsitim oyuzde sorunlar cikmisti, arastirdikadan sonra
gordumki hep converter kullanarak yapilmisti, dediginiz gibi hic bir converter
kullanmaya gerek kalmadan sorun cozuldu, tekrardan cok tesekkur ederim, Serhat
hocam iyi gunler.
|
Aktivite Puanı: 156
public enum PersonType { PHYSICAL_PERSON,LEGAL_PERSON } Converter classim. public abstract class BaseEnumConverter implements Converter { public abstract Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException; public String getAsString(FacesContext context, UIComponent component, Object object) throws ConverterException { if (object instanceof String) { return (String) object; } Enum type = (Enum) object; int index = type.ordinal(); return "" + index; } } public class PersonTypeEnumConverter extends BaseEnumConverter { public Object getAsObject(FacesContext context, UIComponent component, String value) throws ConverterException { int selVal = Integer.parseInt(value); PersonType [] vals = PersonType.values(); for (PersonType val : vals){ if(val.ordinal() == selVal){ return val; } } return null; } } PersonTypeEnumConverter az.risk.jsf.converters.PersonTypeEnumConverter public List getPersonTypeList() { PersonType personType = null; Enum enum1 = null; List items = new ArrayList(); EnumSet enumSet = EnumSet.range(personType, enum1); for (PersonType enumType : enumSet) { SelectItem selectItem = new SelectItem(enumType.ordinal(), enumType.name()); items.add(selectItem); } return items; }Bu sekilde kullaniyorum ama, listeyi null olarak aliyor. simdiden cok tesekkur ederim