Forum İçeriği > Java Server Faces > jsf converter
|
|
Serhat Meşe 9 ay önce
ActivityRank: 62
Merhaba, Burada converter kullanabilirsin. Oncelikle DateConverter adinda
Converter arayuzunu implement eden bir sinif yazman lazim. Bu sinifta 2 tane
yontem tanimi yapman lazim Converter arayuzunden gelen. Bunlardan ilki
getAsObject ikincisi ise getAsString. Sen burada ikincisini implement
edeceksin. Yani sayfanda gosterecegin objeyi Stringe cevireceksin. Bunun icin
de soyle bir sey yapabilirsin: public class DateConverter implements
Converter{ public Object getAsObject(FacesContext arg0, UIComponent arg1,
String arg2) { return null; } public String getAsString(FacesContext arg0,
UIComponent arg1, Object dateObj) { String strDate = ""; if(dateObj != null){
Date date = (Date) dateObj; SimpleDateFormat formatter = new
SimpleDateFormat("dd--MM-yyyy"); strDate = formatter.format(date); } return
strDate; } } Burasi converteri yazma kismiydi. Bir de bu converteri
kullanabilmek icin faces.config.xml'de tanimlaman gerekiyor. Bunun icin de
faces.config.xml'e asagidaki gibi bir bolum eklemen yeterli.
dateConverter xxx.yyy.converter.DateConverter Burada converterin tam
adresini vermen gerekiyor. Son olarak bu yazdigin converteri sayfanda kullanmak
kaliyor sanirim. Bunun icin de date objeni gosterecegin yerde f: converteri
converterId vererek kullanman gerekiyor. Asagidaki gibi... Umarim
yardimci olabilmisimdir. Kolay gelsin.
|
|
|
ertugrula 9 ay önce
ActivityRank: 154
Hocam oncelile ilginize cok tesekkur ederim, bende buna benzer kullanmistim ama
asagidaki hatayi veriyor, web servis kullandigim icinmi acaba tam bilemiyorumm.
Cunku web service client tarafda, tarih degerleri XMLGregorianCalendar bu
sekilde deger gonderilgi icinmi artik bilmiyorum olmuyor. asagidaki hatayi
veriyor. executePhase(RENDER_RESPONSE
6,com.sun.faces.context.FacesContextImpl@1f72be3) threw exception
javax.faces.convert.ConverterException: j_id_id11:j_id_id35: Could not convert
'2009-11-16T16:20:30.093+04:00' to a string. entityde duran deger
@Temporal(TemporalType.TIMESTAMP) private Date modifiedOn; bununla ilgili
olabilrimi hocam, nasil bi degisikli kyapmam gerek acaba..
|
|
|
Serhat Meşe 9 ay önce
ActivityRank: 62
Merhaba; Entityinde modifiedOn'u Calendar olarak tanimlamayi denedin mi?
|
|
|
ertugrula 9 ay önce
ActivityRank: 154
Hocam, entiyde baska bi sekilde tanimlamamiz projenin diger kisimlarinda sorun
cikiyor, cunku bu kutuphaneyi bi cok uygulamaya kullaniyor. Ama dediginiz gibi
entityde degisiklik yapayim, bakalim nasil bi sonuc alcaz. Ilginiz ve
yardimlariniz icin cok tesekkur ederimm
|
|
|
ertugrula 9 ay önce
ActivityRank: 154
Merhaba, Arkadaslar ben Converter sorununu cozdum, isiniz yarar diye kodlari
gonderiyorumm ublic class XMLGregorianCalendarConverter implements
Converter { public Object getAsObject(FacesContext context, UIComponent
component, String value) { try { if (value == null) { return value; } value =
value.trim(); if (value.length() < 1) { return (null); }
XMLGregorianCalendar calendar = DatatypeFactory.newInstance().
newXMLGregorianCalendar(value); return calendar; } catch (ConverterException e)
{ throw e; } catch (Exception e) { throw new ConverterException(e); } } public
String getAsString(FacesContext context, UIComponent component, Object value) {
XMLGregorianCalendar xmlCalendar = null; String result = null; try { if (value
== null) { return null; } try { xmlCalendar = (XMLGregorianCalendar) value; }
catch (ClassCastException ce) { FacesMessage errMsg =
MessageFactory.getMessage("Error : ", (new Object[]{value, xmlCalendar}));
throw new ConverterException(errMsg.getSummary()); } GregorianCalendar calendar
= xmlCalendar.toGregorianCalendar(); String[] dayNames = new
DateFormatSymbols().getWeekdays(); String[] monthNames = new
DateFormatSymbols().getMonths(); result = new String(
dayNames[calendar.get(Calendar.DAY_OF_WEEK)] + ", " +
monthNames[calendar.get(Calendar.MONTH)] + " " +
calendar.get(Calendar.DAY_OF_MONTH) + ", " + calendar.get(Calendar.YEAR));
return result; } catch (ConverterException e) { throw e; } catch (Exception e)
{ throw new ConverterException(e); } } } bu claasi kullanarak cozume
ulasiyoruz
|

ActivityRank: 154