bodycentre
Transkript
bodycentre
Yazar : Tu§çe Kalkavan Web : tugcekalkavan.net admin@tugcekalkavan.net Struts2 ile Merhaba Dünya uygulamas Bu yazda Struts2 ile ilk uygulamamz yapaca§z. Bili³im Blo§u 1 Açklamalar Öncelikle,struts2 ortamn hazrlayp uygulamaya koyulabiliriz. Struts2 ortamnn hazrlanmasn alttaki linkte bulabilirsiniz. http://tugcekalkavan.net/2011/10/23/struts2-ortaminin-eclipsede-hazirlanmasi/ 2 Hazrlk Struts2'de önemli olan bir Action yaratmaktr. Struts2'de Action yaratabiliyorsanz,i³in büyük ço§unlu§unu hallettiniz demektir. Öncelikle bize gerekli olar dosyalardan size bahsetmek istiyorum. Struts2 kütüphanesinden belirli kütüphaneler gereklidir.Bizim kullaca§mz libraryler ilk etapta ³unlar olacak. 1. commons-logging-1.1.jar 2. freemarker-2.3.8.jar 3. ognl-2.6.11.jar 4. struts2-core-2.0.6.jar 5. xwork-2.0.1.jar Siz siz olun,bütün kütüphaneleri import etmeyin,çünkü struts2de e§er böyler bir ³ey yaparsanz hata alrsnz. Actionlara geri dönelim.Struts2de önemli olan bir Action yaratmaktr demi³tik. Bunu yapmak için ³u admlar izleyece§iz. tugcekalkavan.net • Bili³im Blo§u Sayfa: 1 / 9 1. com.opensymphony.xwork2.ActionSupport snfndan miras alan bir snf yarataca§z. 2. Bu snfa execute metodu tanmlayaca§z. 3. Bu metoddan bir String de§eri döndürece§iz,çünkü struts.xml dosyamz buna göre karar verip gerekli dosyaya bizi yönlendirecektir. 4. struts.xml dosyamzn,gerekli Actionundan dönen de§ere göre view yani bir jsp dosyasna yönlendirme yapaca§z. Yapacaklarmzn özeti yukardaki gibi olacaktr.Çok karma³k gibi gözüksede mvc yapsna biraz a³ikarsanz uygulamadan sonra mant§n daha iyi kavrayacaksnz. imdi projemize ba³layabiliriz! 3 Uygulama Öncelikle Eclipse'i açp File->New->Dynamic Web Project sekmesinden yeni proje olu³turuyoruz ve adna MerhabaDunya diyoruz. lk yapmamz gereken libraryleri kopyalamak olsun.ndirmi³ oldu§unuz struts2 dosyalarndan yukarda belirtti§im dosyalar bulup, Web Content->WEB-INF->lib klasörüne kopyalyoruz. tugcekalkavan.net • Bili³im Blo§u Sayfa: 2 / 9 Resimde gördü§ümüz gibi ,struts.xml dosyasn src klasörüne atyoruz. imdi,src klasörü altnda merhabaDunya adnda bir java snf olu³turalm ve extends ActionSupport ile gerekli snfmz miras alalm. com.opensymphony.xwork2.ActionSupport; Tabi ki bundan öncesinde import ile snfmz import etmeyi unutmayalm. imdi gerekli kodumuzu yazalm. tugcekalkavan.net • Bili³im Blo§u Sayfa: 3 / 9 4 merhabaDunya.java import com.opensymphony.xwork2.ActionSupport; public class merhabaDunya extends ActionSupport { /** * */ private static final long serialVersionUID = 1L; private String mesaj; public String execute() throws Exception{ setMesaj("Struts2 - Merhaba Dunya Uygulamasini basardiniz!!Bu mesaj merhabaDunya.java'dan return SUCCESS; } public void setMesaj(String mesaj){ this.mesaj=mesaj; } public String getMesaj(){ return mesaj; } } 5 Açklama:merhabaDunya.java Burada ne yapm³ olduk? Yazmn ba³nda da bahsetti§im gibi bir execute metodu olu³turduk ve içinde set metodumuzla yaz yazp bir string yani SUCCESS döndürdük. Execute metodumuz ³art myd? Execute metodu struts2 uygulamalar için ³art de§ildir ancak ilk dersimiz oldu§u için ve çal³p çal³mad§n daha iyi anlamak adna bu metodu kullanmamz daha yararl olacaktr. imdi gelelim en önemli noktaya.src klasörümüzde yer alan struts.xml dosyamz açp gerekli kodlar yazmaya ba³layalm! tugcekalkavan.net • Bili³im Blo§u Sayfa: 4 / 9 6 struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constant name="struts.enable.DynamicMethodInvocation" value="false" /> <constant name="struts.devMode" value="true" /> <package name="default" extends="struts-default" namespace="/"> <action name="merhabaDunya" class="merhabaDunya"> <result name="success">mesaj.jsp</result> </action> </package> </struts> • merhabaDunya.java dosyamz Struts2'ye tantan yukarda action tagnda yer alan ksmdr. 7 Açklama:struts.xml Bu ksm ilerki uygulamalarda daha detayl anlataca§m,ksaca bahsetmek gerekirse koddanda anla³laca§ gibi package name yerine paket ad yazlr. Burada daha önemli olan actiontagdr.Görüldü§ü gibi 2 parametre alyor. 1. name parametresi actionunuza bir isim atar ve bu isimle adres çubu§undan eri³lebilirsiniz. 2. class parametresi ile ad üstünde hangi snfmz bu actiona ba§layaca§mz belirtiriz.Bizim snfmz merhabaDunya.java oldu§u için merhabaDunya yazdk.Unutmayalm,burada belirtirken her zaman paket ismiyle belirtmeniz lazm. 3. Asl önemli olan result tagdr.Result tagnda anlatlmak istenen ³ey;e§er action snfmdan string olarak "success" dönerse beni mesaj.jsp sayfasna yönlendir.E§er hata ile ilgili bir³ey yapmak isteseydik bir tane error result tag koyup,action snfmzda ona göre tanmlayabilirdik. tugcekalkavan.net • Bili³im Blo§u Sayfa: 5 / 9 8 index.jsp imdi gerekli olan mesaj.jsp ve ba³langçta açlacak olan index.jsp sayfalarmz açalm.Bu sayfalar WEB-CONTENT dizininde olmaldr. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Merhaba Dünya</title> </head> <body><center> <table border="0" cellpadding="0" cellspacing="0" width="400"> <tr> <td> <h2>Tugcekalkavan.net'e hosgeldiniz</h2> <h3>Struts-2 | Merhaba Dünya Uygulamas\T1\i </h3> <ul> <li><a href="merhabaDunya.action">Merhaba Dunya uygulamasinin calismasini gormek icin tiklayiniz</a></li> </ul> </td> </tr> </table></center> </body> </html> 9 mesa j.jsp <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <%@taglib prefix="s" uri="/struts-tags" %> <head> <title>Sturts2 | Merhaba Dunya Uygulamasi</title> </head> <body> <h2>Tugcekalkavan.net | Strust2 - Merhaba Dunya Uygulamasi</h2> <s:property value="mesaj" /> tugcekalkavan.net • Bili³im Blo§u Sayfa: 6 / 9 </html> </body> 10 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/we <display-name>IletisimYonetimi</display-name> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.FilterDispatcher </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> tugcekalkavan.net • Bili³im Blo§u Sayfa: 7 / 9 </welcome-file-list> </web-app> 11 Açklama: web.xml Yukardaki kodlar açklamak gerekirse, lter tagyla, yapt§mz uygulamnn struts2 oldu§unu belrtiyoruz. Burada dikkatinizi çekmek istedi§im nokta ise,ba³langça açlan dosyamz index.jsp olarak ayarlamamzdr ama bu tamamen iste§e ba§ldr. 12 Sonuç Ve i³te tamam!E§er tüm bu admlar izlediyseniz artk struts2 ile ilgili bir proje yaptnz demektir. Projenin üstüne gelip sa§ tklayp Run As->Run on Server diyip tomcat 6.0 y seçin.Daha sonra web taraycnza http://localhost:8080/MerhabaDunya/ yazn ve uygulamanz çal³trn! Merhaba Dünya uygulamasnn çal³masn görmek için tklaynz linkine tkladktan sonra actionumuzun çal³t§n göreceksiniz. tugcekalkavan.net • Bili³im Blo§u Sayfa: 8 / 9 Bu mant§ anladysanz struts2 ile action geli³tirebilirsiniz demektir! 13 Kaynak kod http://www.tugcekalkavan.net/dersler/MerhabaDunya.war Tu§çe. tugcekalkavan.net • Bili³im Blo§u Sayfa: 9 / 9