Merhaba arkadaşlar. Farklı Dillerde Takvim Kullanımı yazımızın ardından bu yazımızda PrimeFaces içinde SelectCheckboxMenu kullanımı ve Java EE içinde kullanılan anotasyonlardan biri olan @PostConstruct anotasyonu konularına değineceğiz. Örnek uygulamamızın kodları, açıklamaları ve ekran çıktıları şu şekilde:
index.xhtml Kodu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html" xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:f="http://xmlns.jcp.org/jsf/core" xmlns:p="http://primefaces.org/ui"> <h:head> <title>Merhaba</title> </h:head> <h:body> <h:form> <h:panelGrid columns="3" cellpadding="5"> <h:outputLabel for="menu" value="Bildiğiniz Programlama Dilleri:" /> <p:selectCheckboxMenu id="menu" value="#{checkboxView.secilmisDiller}" label="Diller" filter="true" filterMatchMode="startsWith" panelStyle="width:250px"> <f:selectItems value="#{checkboxView.diller}" /> </p:selectCheckboxMenu> <p:commandLink value="Gönder" update="display" /> </h:panelGrid> <p:outputPanel id="display" style="width:250px;padding-left:5px;margin-top:10px"> <p:dataList value="#{checkboxView.secilmisDiller}" var="city" emptyMessage="Hiçbir Dil Seçilmedi"> #{city} </p:dataList> </p:outputPanel> </h:form> </h:body> </html> |
index.xhtml kodumuz içinde SelectCheckboxMenu kullanmamızı sağlayan etiket <p:selectCheckboxMenu> etiketidir. Etiketin value bileşeni ile seçilen değerin Java tarafında kim tarafından tutulacağını söylüyoruz. Label bileşeni ile CheckBox’ların altında toplandığı bileşenin adını bildiriyoruz. Filter bileşeni ile filtrelemenin olup olmayacağına karar veriyoruz ve filterMatchMode ile de filtrelemenin nasıl olacağına karar veriyoruz. <f:selectItems> ile de JSF’den bildiğiniz gibi ekrana basılacak değerleri bildiriyoruz.
<p:outputPanel> ile ekrana dikdörtgen şeklinde bir panel basılmasını sağlıyoruz ve <p:dataList> ile bu panel içine verilerin düzenli şekilde basılmasını sağlıyoruz. DataList bileşenini JSF’de kullandığımız DataTable bileşenine benzetebiliriz.
CheckboxView.java Kodu
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import java.util.ArrayList; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; @ManagedBean public class CheckboxView { private String[] secilmisDiller; private List<String> diller; @PostConstruct public void init() { diller = new ArrayList<String>(); diller.add("Java"); diller.add("Python"); diller.add("C"); diller.add("C++"); diller.add("Ruby"); diller.add("C#"); diller.add("Fortran"); diller.add("Lisp"); diller.add("Visual Basic"); } public String[] getSecilmisDiller() { return secilmisDiller; } public void setSecilmisDiller(String[] secilmisDiller) { this.secilmisDiller = secilmisDiller; } public List<String> getDiller() { return diller; } } |
Java sınıfımız içinde yazımızın konularından biri olan @PostConstruct anotasyonu yer almakta. Bu anotasyon ile metodun otomatik olarak çağrılmasını sağlıyoruz. Normalde yazdığımız bir metot biz onu çağırıncaya kadar hiç bir davranışta bulunmaz. Fakat başına @PostConstruct anotasyonu eklenen metot sunucu tarafından tetiklenir ve çalıştırılır. Uygulama kodlarını kendi bilgisayarınızda çalıştırdığınızda göreceksiniz ki init metodu hiçbir yerden çağrılmamasına rağmen çalışmış ve listeyi doldurmuştur.
Ekran Çıktıları
Bu yazıda da bu kadar arkadaşlar. Gelecek yazıda görüşmek üzere sağlıcakla kalın.
[…] bir nokta yok arkadaşlar. @PostConstruct anotasyonunu daha önce öğrenmiştik. Bilmeyenler buraya tıklayarak […]
farz edelimki diller database den gelir ve secilmisDiller in ID si bize lazimdir basqa yerlerde istifade etmek ucun onda bu problemi nece aradan qaldirmaq?
Merhaba.
Bu durum için HashMap’in işinizi göreceği kanattindeyim.HashMap yapısı key,value çifti şeklinde veri tutabildiği için siz de id,programlama dili çifti şeklinde bir çift ile işinizi görebilirsiniz diye düşünüyorum.
Şurayı inceleyebilirsiniz:http://beginnersbook.com/2013/12/hashmap-in-java-with-example/
SAYGILAR
tesekkurler