Bu üç kavram genellikle karışıtırılır, bu karışıklık kimi zaman yanlış anlamalara da neden olabiliyor. Haklı karışıklığın sebebi, bu üç kavramın da birbirine çok yakın olması.
Java'da ondalık sayıları BigDecimal sınıfının setScale() fonksiyonu ile yuvarlayabilirsiniz.Bu metod Java 1.1 ve sonraki versionlarda kullanılabilir.
import java.math.*;
public class divers {
public static void main(String args[]){
divers d = new divers();
d.testRound();
}
public void testRound(){
double r = 3.1537;
int decimalPlace = 2;
BigDecimal bd = new BigDecimal(r);
bd = bd.setScale(decimalPlace,BigDecimal.ROUND_UP);
r = bd.doubleValue();
System.out.println(r); // output is 3.15
}
}
SF, günümüzün en popüler web framworklerindendir. Java’nın gücünü ve tasarımın esnekliğini JavaServer Faces ile kullanabilirsiniz. JSF’de oturum yönetimi yani kullanıcı adı ve parola girildikten sonra erişilen korunumlu sayfaları olan uygulamalar geliştirmenin bir çok yöntemi vardır. Örneğin çok basit bir yöntem; her sayfanın başına session’da istenilen bir değerin var olup olmadığına bakılabilir. Aşağıdaki örnekte, bu yöntemden çok daha farklı bir yöntemle yani JSF’ye özgü bir yöntemle oturum yönetiminin nasıl yapılacağı anlatılacaktır.
JSF, Java dünyasının web alanında parlayan değeridir. Richfaces, myFaces gibi çeşitli kütüphanelerle yeterli sayılabilecek düzeyde Ajax desteği ile de uygulama geliştirmek mümkündür. JSF’de birtakım validation’lar yani form kontrolleri (doğrulama da denebilir) doğrudan yapılabilir. Ancak bazı özel durumlara özgü validation’lar gerekebilir. Aşağıdaki örnekte JSF ile E-Posta doğrulamasının nasıl yapılacağı açıklanmıştır.
form.jsp içerisinde aşağıdaki gibi basit bir formunuzun olduğunu varsayalım;
JSF, form verilerini doğrulama açısından gerçekten çok güçlü bir yapıya sahiptir. Kendi içinde de hazır birkaç doğrulama mekanizması bulunmakla birlikte onu asıl güçlü kılan kullanıcıların kendi doğrulama sınıflarını yazıp, daha sonra tekrar tekrar kullanabilmeleridir.
JSF’de Bean’lar olmazsa olmazlardır. Bazı durumlarda java sınıflarından (uzantısı java olan dosyalardan) herhangi bir bean’ın mevcut metod ve değerlerine erişmek gerekebilir. Önceleri bu erişim createValueBinding metodu ile yapılırken, bu metodun deprecated (onun işini yapacak yeni bir sınıf oluşturulmasından) olmasında dolayı bean’lara sınıflar içinden erişim createValueExpression ile yapılmaktadır. Aşağıda her iki şekilde erişime ait java kodları yer almaktadır.
RichFaces, JSF dünyasının en popüler frameworklerinden biri olduğu konusunda hiç şüphe yoktur. Jboss tarafından geliştirilen Richfaces’ın 3.3.0 sürümü yakın zamanda piyasaya çıkacak. RichFaces 3.3.0.CR1 sürümü BETA sürümün ardından şimdiden test ediliyor. 3.3 sürümünden birtakım düzenlemeler, iyileştirmeler yapılırken iki de yeni bileşen eklenmiş. Bu adreste yeni sürüme ait notları okuyabilirsiniz.
Bu yazıda JSF’nin Tomcat 6 üzerine kurulumunu açıklamaya çalışacağım. Çalışma sonunda çok basit bir JSF uygulama da yazıp, JSF’nin nasıl çalıştığı konusunda bir fikir vermeye çalışacağım.
JSF’nin son sürümü 1.2, servlet 2.5 ve JSP 2.1 gerektirmektedir. Biz örneğimizde Tomcat 6 kullanacağımız için böyle bir sorunumuz olmayacak. Ancak var olan başka bir tomcat ile JSF yazmak isterseniz, buna dikkat etmeniz gerekir. Tomcat 6.0, JSTL ve JSF 1.2 dosyalarını indireceğiz.
Eğer bu sitedeki yazıları takip ediyorsanız, 25 Ağustostaki Hangi Programlama Dili başlıklı yazımızda, popüler programlama dillerinin bir listesini vermiştik. Bu listenin en tepesindeki dil Java idi. Java, günümüzde özellikle büyük ölçekli uygulamalar geliştirmek için (bunun dışında birçok platform için uygulama geliştirilmektedir) yaygın olarak kullanılan ve tercih edilen programlama dilidir.
Java’nın Sertifikasyon programı SCJP (Sun Certified Java Programmer) ve SCJD (Sun Certified Java Developer) sertifikaları için birkaç kaynak vermek istiyorum;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class CompareDates {
public static void main(String[] args) throws ParseException {
DateFormat df = new SimpleDateFormat(“yyyy-MM-dd”);
Date d1 = df.parse(“2000-02-01″); // ilk tarih
Date d2 = df.parse(“2001-03-02″); // ikinci tarih
String relation;
if (d1.equals(d2))
relation = “the same date as”;
else if (d1.before(d2))
relation = “before”;
else
relation = “after”;
System.out.println(d1 + ” is ” + relation + ‘ ‘ + d2);
}
}