Açıklama,Struts 2'de Session Scope uygulaması geliştirmek Request Scope uygulaması geliştirmek kadar kolaydır. Eğer bir Struts 2 Action sınıfında session scope alanı kullanmak istiyorsanız, Action Sınıfınızın aşağıdaki SessionAware "interface" 'ini uygulaması (implement) etmesi gerekmektedir.
Yukarıdaki Interface sınıfını uygulayan Action Sınıfı aşağıdaki metodu da uygulamak zorundadır.
Aşağıdaki örnek kod, Session Scope'u kullanan LoginAction sınıfını tarif etmektedir. SessionAware sınıfının implement edildiğine dikkat ediniz.
Yukarıdaki Struts 2 Action sınıfı sahip olduğu session yerel değişkeni sayesinde HTTP Session Scope alanına ulaşabilecektir. session değişkeni, görüldüğü gibi bir java.util.Map türünde bir değişkendir ve Map sınıfının tüm fonksiyonalitesini içerisinde barındırmaktadır. setSession metodu Struts 2 mimarisinde yer alan SessionAware Interceptor'u sayesinde, LoginAction sınıfı yaratıldığında otomatik olarak çalışacak olan bir metoddur. Yani geliştiricinin setSession metodunu herhangi bir zamanda herhangi bir amaç ile çağırmasına gerek yoktur. Bu metod otomatik olarak LoginAction sınıfı yaratıldığında çağırılacağından dolayı bu metod için geliştiricinin yapacağı başka hiç bir işlem yoktur. setSession metodu, çalıştığında kendisine parametre olarak ulaşan HTTP Session alanını (yani metod parametresindeki arg0 parametresini), yerel değişken olan session değişkenine atar. Böylelikle, LoginAction'daki herhangi bir metod, session yerel değişkeni sayesinde HTTP Session Scope alanını manipüle edebilir. ÖrnekAşağıda, küçük bir Session Scope örneği mevcuttur. LoginAction sınıfındaki execute metodu içersinde session.put yardımı ile HTTP Session Scope alanına bir "hosgeldin" değişkeni konulmaktadır. Bu "hosgeldin" değişkeni, LoginAction execute metodu çağrıldığında HTTP Session Scope alanına yerleştirilmektedir ve ardından execute metodunun çağırdığı JSP sayfasında bu değişken kullanılmaktadır. LoginAction Sınıfı İçeriği:
Login.jsp Sayfası İçeriği:
Yukarıdaki içşemler yapılıp, http://localhost:8080/SimpleStruts2Application/Login.action adresi çağrıldığında aşağıdaki gibi bir ekran görmelisiniz. Burada dikkatinizi çeken şey jsp sayfasındaki "<s:property/>" tag'i olabilir. Bu tag, request, session, application scope alanındaki değişkenlere ulaşmanızı sağlar. Bu tag'e ileride tekrar değineceğiz. Ama kullanımı çok kolay, yukarıdaki jsp örneğine bakıp nasıl kulanıldığını anlayabilirsiniz. |
