Converter ile ilgili şöyle bir sorunum var. rich:calendar nesnesini olduğu gibi sql server'a atmam gerekiyo. Tasarımı bozmamak için converter tarzı birşey ile yapmam lazım.
Algoritmada sorun olablilir. timeStamp nesnesini HtmlCalendar'a çevirmem gerekiyo. Burada string'e çevirdiği için sıkıntı oluyor. Çeviride sorun olmasa bile JSF deki diğer butonlar çalışmıyor..
Veritabanına calendar'dan veri yazma ve okuma ile ilgili elinde kod olan varsa ve gönderirse çok makbule geçer.
<rich:calendar value='#{HR_Person_Bean.table.value["PERS_Birthday"]}' >
<f:converter converterId="DateConverter" />
</rich:calendar>
<converter>
<converter-id>DateConverter</converter-id>
<converter-class>
PageBeans.dateConverterBean
</converter-class>
</converter>
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package PageBeans;
import java.sql.Date;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import org.richfaces.component.html.HtmlCalendar;
/**
*
* @author Burak AMASYALI
*/
public class dateConverterBean implements Converter {
/** Creates a new instance of dateConverterBean */
public dateConverterBean() {
}
public Object getAsObject(FacesContext context, UIComponent component, String value) {
String calendarString, date = "";
if(value == null | value.equals(""))
return null;
calendarString = value;
if (value.length()==12) {
date += calendarString.substring(8, 12) + "-";
}else{
date += calendarString.substring(7, 11) + "-";
}
String monthString = calendarString.substring(0, 3);
if (monthString.equals("Jan")) {
date += "01";
} else if (monthString.equals("Feb")) {
date += "02";
} else if (monthString.equals("Mar")) {
date += "03";
} else if (monthString.equals("Apr")) {
date += "04";
} else if (monthString.equals("May")) {
date += "05";
} else if (monthString.equals("Jun")) {
date += "06";
} else if (monthString.equals("Jul")) {
date += "07";
} else if (monthString.equals("Aug")) {
date += "08";
} else if (monthString.equals("Sep")) {
date += "09";
} else if (monthString.equals("Oct")) {
date += "10";
} else if (monthString.equals("Nov")) {
date += "11";
} else if (monthString.equals("Dec")) {
date += "12";
}
date += "-" + calendarString.substring(4, 6);
return date;
}
public String getAsString(FacesContext context, UIComponent component, Object value) {
java.sql.Timestamp temp = (java.sql.Timestamp) value;
String calendarString="";
HtmlCalendar asd = new HtmlCalendar();
if(temp.getMonth() == 1){
calendarString += "Jan ";
}else if(temp.getMonth() == 2){
calendarString += "Feb ";
}else if(temp.getMonth() == 3){
calendarString += "Mar ";
}else if(temp.getMonth() == 4){
calendarString += "Apr ";
}else if(temp.getMonth() == 5){
calendarString += "May ";
}else if(temp.getMonth() == 6){
calendarString += "Jun ";
}else if(temp.getMonth() == 7){
calendarString += "jul ";
}else if(temp.getMonth() == 8){
calendarString += "Aug ";
}else if(temp.getMonth() == 9){
calendarString += "Sep ";
}else if(temp.getMonth() == 10){
calendarString += "Oct ";
}else if(temp.getMonth() == 11){
calendarString += "Nov ";
}else if(temp.getMonth() == 12){
calendarString += "Sep ";
}
if (temp.getDate()< 10) {
calendarString += "0";
}
calendarString += temp.getDate();
calendarString += ", 19";
calendarString += temp.getYear();
return calendarString;
}
}
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|