ertugrula 26 ay önce
Aktivite Puanı: 156
Merhaba, Jsf`de enum type kullanirken bi problemle karsilasdim, yardimci olursaniz cok sevinirim. Enum`lari kullanmak icin converter olsuturup hepsini yaptim ancak degerleri alirken null deger atiyor, asagidaki sekilde kullandim hatami bulmamda yardimci olursaniz cok sevinirim.simdiden tesekkur ederim 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
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.

Latest Activity

yeni bir mesaj yolladı. TopLink EclipseLink
5 ay önce
mesaja yanıt verdi RE: HttpClient.
6 ay önce
mesaja yanıt verdi RE: HttpClient.
7 ay önce
yeni bir mesaj yolladı. HttpClient
7 ay önce
yeni bir mesaj yolladı. HttpClient
7 ay önce
yeni bir mesaj yolladı. Birt ile Raporlarma
10 ay önce
mesaja yanıt verdi RE: Hibernate.
10 ay önce
mesaja yanıt verdi RE: wicket kendi sayfama yonlendirme.
10 ay önce
yeni bir mesaj yolladı. wicket kendi sayfama yonlendirme
11 ay önce
yeni bir mesaj yolladı. wicket kendi sayfama yonlendirme
11 ay önce

Top Contributors

71
ertugrula
53
Abdulkadir Selcukoglu
49
Altuğ Bilgin Altıntaş
32
wicket_id_tolga
30
Taner Diler