Merhaba,
bir önceki yazımda controllerdan aldığımız değerleri
view katmanında nasıl listeleyeceğimizi görmüştük. Bu yazımda ise sizlere
controllerdan set edilen değerleri listelerken
If kontrolünün nasıl yapılacağını ve
array lerin nasıl listeleneceğini inceleyeceğiz.
Yine
intelliJ ile bir
web(spring MVC) projesi oluşturarak işe başlayacağız.
projemizin bitmiş halinin görünümü(Hiyerarşik yapı) aşağıdaki gibi olacaktır.
ilk olarak
controllerda bilgiler ve
diller diye iki farklı
arrayList tanımladım.
diller ; programlama dilleri bilgisini tutacak ,
bilgiler ise kişi bilgilerini(ad,soyad) tutacak.
NOT: Normal şartlarda bilgileri arrayListte tutmak size anlamsız gelebilir ancak jsp(view) sayfasında farklı iki foreach ve if kullanımına yer verdim. Kullanımlardaki farklılıkları daha kolay inceleyebilmeniz için böyle bir yöntem tercih ettim.
ListController.java
@RequestMapping(value =
"/", method = RequestMethod.GET)
public ModelAndView index()
{
ModelAndView mv = new
ModelAndView("index"); // index sayfasına gider
HashMap<String,
String> hashMap = new HashMap<String, String>();
hashMap.put("adi", "Levent");
hashMap.put("soyadi", "YILDIZ");
ArrayList bilgiler =
new ArrayList();
bilgiler.add(hashMap);
mv.addObject("bilgiler", bilgiler);
List<String> list
= new ArrayList<String>();
list.add("C");
list.add("Java");
list.add("C++");
list.add("C#");
list.add("phyton");
mv.addObject("diller", list);
return mv;
}
|
bu bilgileri ekrana basabilmek için yine bir önceki yazımda olduğu gibi jslt yi maven'a ekliyoruz.
pom.xml
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
|
maven'a ekledikten sonra yine jsp sayfasının en üstünde jslt core'u çağırıyoruz.
index.jsp
<%@taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core" %>
|
bu işlemlerden sonra arraylist'i foreach ile ekrana basabiliriz.
index.jsp
<%--kullanım 1--%>
<c:forEach var="bilgi" items="${bilgiler}">
<c:choose>
<c:when
test="${bilgi.adi!=null && bilgi.adi!=''}">
<p> Adi
: ${bilgi.adi} </p>
</c:when>
</c:choose>
<c:choose>
<c:when
test="${bilgi.soyadi!=null && bilgi.soyadi!=''}">
<p> Soyadi
: ${bilgi.soyadi} </p>
</c:when>
</c:choose>
</c:forEach>
|
index.jsp
<%--kullanım2--%>
<c:if test="${not empty diller}">
<ul>
<c:forEach
var="listLangs" items="${diller}">
<li>${listLangs}</li>
</c:forEach>
</ul>
</c:if>
|
üstteki kodları projenize ekleyip çalıştırdığınızda controllerdan doldurulan diller(Programlama Dilleri) ve bilgiler(Kullanıcı Bilgileri) ekrana yazdırılacaktır. Ekran çıktısı aşağıdaki gibi olacaktır.