bodycentre

Transkript

bodycentre
Yazar : Tu§çe Kalkavan
Web : tugcekalkavan.net
[email protected]
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

Benzer belgeler