1. Struts 2 İle Tanışma Çeviri: 30 Haziran 2008 Okan Özeren okanozeren@gmail.com Kaynak: 24 Şubat 2007 Thomas Wiradikusumathomas@wiradikusuma.com Java User Group Indonesia
2. Struts 2 Kurumlar için Java Web uygulamaları geliştirmeye hazır, üstün ve uzatılabilir bir çatıdır (framework). MVC (Model-View-Controller) bir çatıdır. Action tabanlıdır. Bilinen, ünlü Struts çatısının varisidir (ve teknik açıdan WebWork 2'nin de).
3. Artıları Basit mimari ObjectFactory ile uyumlu Interceptor'lar, Action'lar, Result'lar Controller veya Sayfa tabanlı gezinim POJO (Plain Old Java Object), Annotation ve JSF desteği OGNL (Object-Graph Navigation Language) destekli düzenlenebilir tag kütüphanesi Value stack (değer yığıtı) Öntanımlı IoC (Inversion of Control) konteynırı olarak Spring kullanımı Hızlı başlangıç Dahili Ajax desteği Konfigürasyonu kolaylaştırıcı bir çok mantıklı öntanımlı kural Kolay test edilebilir (konteynır dışında) Struts 1 ve WebWork 2'nin en iyi özelliklerini barındırması.
4. Mimari Request (İstek) gelir FilterDispatcher uygun action'u bulur Interceptor'lar (denetleyiciler) uygulanır Action içindeki metod çalıştırılır (genellikle temel işlevleri yerine getiren) Sonuç çıktı olarak sunulur
9. Action'lar Bütün action'lar, execute() metodunu veya bu gibi metodları barındırmalıdır. Bununla birlikte XWork 1.1'deki gibi, bu çok gerekli değildir ve sadece kullanıcılara yardımcı olması amacıyla bulunabilir. Farklı bir interface'i gerçekleştirmeden bu interface'i kullanarak POJO'ları yaratmakta tamamen serbestsinizdir. ActionSupport sınıfı bir çok ortak action için öntanımlı gerçekleştirim sunar.
11. Tür dönüşümü HTTP'de her şey String'dir Dahili: boolean, char, numeric, types, dates, arrays, collections ClassAdı-çevrim.properties: foo = package.FooÇevirici Genel olarak struts-çevrim.properties class yolunun kök dizininde bulunur (genellikle WEB-INF/classes): package.Foo = package.FooÇevirici Temel bir tür dönüştürücü'yü StrutsTypeConverter'dan uzatabilirsiniz (extending) TypeConversionException istisnası (exception) çevrim istisnası oluştuğunda fırlatılır. Bu istisnada gösterilecek bilgi ise Struts'ın struts.default.invalid.fieldvalue konfigürasyon anahtarında tutulur
12. Yerelleştirme Kaynak paketlerine aşağıdaki sıra ile bakılır: ActionClass.properties BaseClass.properties (Object.properties'e başından sonuna kadar) Interface.properties (her interface vealt-interface) ModelDriven modeli (eğer ModelDriven tanımlanmışsa), model nesnesini 1'den itibaren tekrarlamak için package.properties (class nerde bulunuyorsa ve kök dizine kadar her üst dizinde) Kendi I18n mesaj anahtarı hiyerarşisine göre arar Genel kaynak (global resource properties) anahtarları Erişim yolları: getText: <s:property value="getText('herhangibir.anahtar')" /> text tag’ı: <s:text name="herhangibir.anahtar" /> Değer yığıtında herhangi bir kaynak paketine erişmek için I18n tag’ı: <s:i18n name=" herhangibir.paket" > <s:text name=" herhangibir.anahtar" /> </s:i18n>
15. Taglib devam <%@ taglib uri="/struts-tags" prefix="s" %> Tag kategorileri: Kontrol Veri UI (forma özgü olanlar ve diğerleri) Ajax
17. OGNL Object Graph Navigation Language JSTL - EL’den (Jsp Standard Tag Library - Expression Language)daha güçlüdür
18. Spring entegrasyonu Varsayılan, framework’un nesneleri yaratırken Spring kullanmayı en azından denemesidir Eğer nesne Spring tarafından yaratılmamışsa, o zaman framework nesneleri kendisi yaratacaktır
19. Test Doğrudan Action çağrımı Konteynır dışı test Interceptor ve/veya Result’ların testi
20. Struts 1 ve Struts 2 Aynı ada sahip olmasına rağmen (Struts), Struts 1’den WebWork 2’ye geçiş oldukça zordur.
21. WebWork 2 ve Struts 2 Yalnız isimlendirme ve namespace dışında hemen hemen aynıdır.
23. Açık kaynak kütüphanelerle entegrasyon Spring 2.0 Velocity Freemarker JasperReports DWR (Direct Web Remoting) Apache Pluto dojo ve daha birçoğu...
24. Bahsedilmeyenler Annotation desteği JSF, Ajax desteği plug-in’ler Hızlı başlangıç (QuickStart) Validation (onaylama) Değer yığıtı (Value stack) Wildcard haritalama(mappings) Sıfı configürasyon (Zero configuration)