Session içinde varolan attribute'leri standart tag library ile okuyabilmek gayet kolaydır.
<c:set var="test" value="${domain_test}"/> yaptığımızda bütün scope'lar içinden arayarak "domain_test" objesini bulur. Hatta bu attribute'un session da olduğunu bildiğimiz için <c:set var="test" value="${domain_test}" scope="session"/> diye verirsek de olur.
Fakat benim karşılaştığım sorun da olduğu gibi eğer session'a koyduğunuz objenin isminde "nokta" varsa "c:set" yukarıda örneklerde olduğu gibi davranmıyor.
Session'a koyduğumuz objenin ismi "domain.test" olsun. Bu durumda <c:set var="user" value="domain.test" scope="session"/> şeklinde tanımlarsak tag library session'daki domain objesinin test attribute'ünü set etmeye çalışacaktır. Eğer uyanık davranıp <c:set var="user" value="'domain.test'" scope="session"/> şeklinde değiştirirseniz zaten parse hatası alacaksınız :).
Gelelim çözümüne, <c:set var="test" value="${sessionScope['domain.test']}"/>
şeklinde tanımlamamız gerekiyor.
Bu durum JSTL 1.0 için sorun oluyor olabilir. 1.1 için denemedim.
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment