Bu iki
component JSF uygulamalarında sıkça kullanılan componentler olmakla beraber ManagedBean tarafında da işlenmesi oldukça önemlidir.
<h:selectOneMenu>
componenti tıpkı combobox gibidir. <h:selectManyListbox> componenti ise
tıpkı Java swing de ki list componenti gibidir.
Aşağıda
bu bileşenlerin JSF sayfalarında nasıl kullanıldığı ve ManagedBean ler ile
nasıl işlendiğini anlatan bir uygulama mevcuttur.
<h:outputText value="Meslek : " />
<h:selectOneMenu value="#{comyon.meslek}">
<f:selectItem itemValue="Öğrenci" itemLabel="Öğrenci" />
<f:selectItem itemValue="Mühendis"
itemLabel="Mühendis" />
<f:selectItem
itemValue="Doktor" itemLabel="Doktor" />
<f:selectItem itemValue="Avukat"
itemLabel="Avukat" />
<f:selectItem itemValue="Asker"
itemLabel="Asker" />
</h:selectOneMenu>
<h:outputText value="İlgi alanlarınız : " />
<h:selectManyListbox value="#{comyon.ilgiAlanlari}">
<f:selectItem itemValue="Yazılım" itemLabel="Yazılım"/>
<f:selectItem itemValue="Spor"
itemLabel="Spor"/>
<f:selectItem itemValue="Kitaplar" itemLabel="Kitaplar"/>
<f:selectItem itemValue="TV" itemLabel="TV"/>
<f:selectItem itemValue="Tarih" itemLabel="Tarih"/>
<f:selectItem itemValue="Sosyoloji" itemLabel="Sosyoloji"/>
<f:selectItem itemValue="Matematik" itemLabel="Matematik"/>
</h:selectManyListbox>
Bu iki
bileşen yukarıda görüldüğü gibi kullanılır. Ortaya aşağıda ki gibi bir görüntü
çıkar.
Başka
bir sayfaya buradan seçtiğimiz değerleri göndermek için ya da seçilen bu
değerleri kontrol edebilmek için ManagedBean imiz aşağıda ki gibi olur.
package com.mesutemre;
import java.util.Date;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean(name
= "comyon")
@RequestScoped
public class ComponentYonetim
{
private String
meslek;
private String[]
ilgiAlanlari;
public String
getMeslek() {
return meslek;
}
public void setMeslek(String
meslek) {
this.meslek
= meslek;
}
public String[]
getIlgiAlanlari() {
return ilgiAlanlari;
}
public void setIlgiAlanlari(String[]
ilgiAlanlari) {
this.ilgiAlanlari = ilgiAlanlari;
}
public String
getılgiAlaniInString() {
String s
= "";
StringBuilder builder = new StringBuilder();
if (ilgiAlanlari == null)
{
s
+= "";
} else {
for (int i = 0; i < ilgiAlanlari.length; i++) {
if
(i != 0) {
builder.append(",");
}
builder.append(ilgiAlanlari[i]);
}
s
+= builder.toString();
}
return s;
}
}
Listbox
dan veri alınırken dönen değerin bir String dizisi olduğuna dikkat ediniz.
Dolayısıyla xhtml sayfasında ListBox dan dönen değeri yazdırırken getılgiAlaniInString metodunu
kullanacağız
Bir
başka makale de görüşmek üzere esen kalın…
Hiç yorum yok:
Yorum Gönder