C# VE JAVA
Would you like to react to this message? Create an account in a few clicks or log in to continue.

C# VE JAVA

bilşim ve yazılımda son nokta
 
AnasayfaLatest imagesAramaKayıt OlGiriş yap
Giriş yap
Kullanıcı Adı:
Şifre:
Beni hatırla: 
:: Şifremi unuttum
Arama
 
 

Sonuç :
 
Rechercher çıkıntı araştırma
Ortaklar
Istatistikler
Toplam 7 kayıtlı kullanıcımız var
Son kaydolan kullanıcımız: AhmetCe00664761

Kullanıcılarımız toplam 72 mesaj attılar bunda 72 konu
Anahtar-kelime
işlem

 

 Struts'a Giriş II

Aşağa gitmek 
YazarMesaj
Admin
Admin



Mesaj Sayısı : 72
Kayıt tarihi : 02/12/08

Struts'a Giriş II Empty
MesajKonu: Struts'a Giriş II   Struts'a Giriş II Icon_minitimeCuma Ara. 05, 2008 12:04 pm

Controller İçin Action Yaratmak


ActionServlet’in applikasyonun Controller kısmına tekabül ettiğini söylemiştik.Yapılan her request bir Action’a karşılık gelir ve yapılan requestlerin hangi Action’a yönlendirileceğine bu class karar verir.İşimiz bu classla ve onun kullanması için bir Action class yaratacağız.Basitçe başka bir jsp’ye yönlendirme yapan bir Action yapacağız.

Action classı org.apache.struts.action paketinde olup extend ederek sub-classlarını oluşturacağız.

Kod:
import javax.servlet.http.*;
import org.apache.struts.action.*;
import java.io.IOException;
import java.servlet. ServletException;

public class HelloAction extends Action

{
  public ActionForward perform(
    ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response) throws IOException,ServletException
 {
/*Herhangi baska islemler yapılabilir,data base islemleri olabilir.İşlem mantığına göre baska-baska jsp yönlendirmeleri de yapılabilir.*/
      return mapping.findForward("hello");
  }
}

Struts 1.0’da metod adı perform()’dur.Fakat 1.1 ve 1.2 için bu metodun yerine;

public ActionForward execute(ActionMapping mapping,

ActionForm form,

HttpServletRequest request,

HttpServletResponse response)throws Exception

metodu kullanılıyor yukarı Struts versiyonları ile çalışırken dikkat edin.

Class’ı derlemek için Servlet jar’ı ve Struts jar’ı classpath e eklemeyi unutmayın.Borland JBuilder kullanıyorsanız bunları yapmanıza gerek kalmıyor.New dediğinizde gelen diyalog kutusundan web sekmesine tıklayın ve Action class etiketine tıklayın.Yeni bir Action classı template örneğini yaratır.Sonra yukarıdakileri kopya edip derleyin.

Derlenen classları WEB-INFclasses altında tutun.Bu directoryde birde ApplicationResources.properties adında bir başka önemli dosya durur.Bunu sonra anlatacağım.

Struts-config.xml Dosyası

Bu dosya bir xml dosyası olup Struts Controllerının kullandığı konfigürasyonu içerir.Yapılan her action’ın(request’in) sonucunda hangi Action class’ı devreye girecek burada bildirilmelidir.
Kod:

 <action-mappings></action-mappings>

Bu elementin içinde her action’un haritası(rotası)yer alır.Her hangi bir jsp’den yapılan requesting derlediğimiz bu Action’a yönlendirilmesi için;
Kod:

<action path="/HelloAction" type="HelloAction">

      <forward name="hello" path="Hello.jsp"/>

</action>
olarak bir action elementi bloğu tanımlayıp <action-mappings> elementinin altına koyun ve kaydedin.

Burada ‘path’ attributesi yapılan actionun adı

(yani HelloAction.do,kısaca HelloAction),type ise hangi Action classı bu action’u işleyecek belirtilir(yani HelloAction.class,kısaca HelloAction).

İçindeki forward elementi ise işlem mantığından sonra hangi jsp’ye yönlendirilecek onu belirler.Mesela Action classımızda;

return mapping.findForward("hello");

ile “hello” adıyla ilişkilendirilen bir jsp’ye forward ediyor.

Controller bu forward’a karşılık gelen jsp’yi belirler ve View’e iletir.

Hello.jsp

Kurduğumuz bu basit yapıyı çalıştırmak için bir Hello.jsp adında bir jsp yapmamız lazım.İşte jsp’miz;

Kod:
<%@ page language="java" %>
<%@ taglib uri="/ WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/ WEB-INF/struts-html.tld" prefix="html" %>
<html:html locale="true">
<head>
  <title><bean:message key="hello.title"/></title>
  <html:base/>
</head>
  <body bgcolor="white">
  <h3><bean:message key="hello.heading"/></h3>
  <p><bean:message key="hello.message"/></p>
</body>
</html:html>

Bu jsp’ye request etmek için struts-blank.war extract edildiğinde gelen index.jsp’den bir link vereceğiz.index.jsp’yi açıp ve içine link ekleyip editleyeceğiz.

Linkimiz şöyle olacak;

<html:link page="/HelloAction.do">İlk Temas</html:link>

görüldüğü üzere index.jsp Tomcat’ten istendiğinde daha sonra <a href=”TestAction.do”>...</a> tagını üretecektir.Bu ilginç tagler Struts ile birlikte gelen Struts Tag Library’nin içindeki taglerdir ve Tag Library ise Struts’ın View componentinin bir parçasıdır.Tag library’e ileride kısa bir giriş yapılacaktır.

Dikkatinizi çekti mi HelloAction.do diye bir yer var linkte?Bu html kodunda <a> tagınada bu şekilde taşınır.Yani jsp’den jsp’ye artık direkt geçiş olmayacak.Struts’ın amacıda bu.Geçişler ve buna benzer operasyonlar Action classı forward edilecek jsp’yi belirleyerek yapacak.

Daha sonra WEB-INF/classes/ApplicationResources.properties dosyasını açın.Bu dosyada bir kaç ekleme yapacağız.

hello.title=Struts 1.0
hello.heading= Selam-ün aleyküm Struts
hello.message=İşte struts karşınızda...Struts Model View ve controller yapısıyla Applicasyon geliştirmede kolaylık sağlayan bir yapıdır...
Satırlarını ekleyin ve kaydedip çıkın.

ApplicationResources.properties

Bu dosya struts-bean.tld’deki taglar tarafından kullanılan bir dosyadır.

Bizim jsp’mizde <title>,<h3> ve <p> taglarında içinde

<bean:message key="hello.title"/>

şeklinde kullanıldı.Burada properties dosyasına kaydettiğiniz key ile bu değerler tag içindeki key attributesinde aynı key ile belirtilerek çağrılır ve basılırlar.Kullanılan bu dosya web.xml dosyasından konfigüre edilir.

Web.xml dosyası
ApplicationResources dosyası
Kod:
 
<servlet>
  .
  .
  .
  <init-param>
      <param-name>application</param-name>
      <param-value>ApplicationResources</param-value>
    </init-param>
    .
    .
    .
</servlet>

olarak yer alır ve konfigüre edilir.İsterseniz bu dosyayı classes altında klasörlere koyabilirsiniz.Fakat properties dosyasının nerde duracağı konusunda değişiklik yaptığınızda mutlaka burayı konfigüre edip belirtin.

Örn:<param-value>yildiz.test.struts.ApplicationResources </param-value> gibi...

Yada ismini değiştirmeniz ve kendiniz bir isim vermeniz mümkündür.
Verdiğiniz dosya adını da burada aynı şekilde belirtip konfifüre edin.

Yapılan actionların *.do şeklinde olacağını söylemiştim.
İsterseniz yine web.xml’i düzenleyerek istediğiniz türe değiştirmeniz de mümkündür.

Kod:
 <!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

elementinde belirtildiği gibi Actionların *.do tipinde olacağı söyleniyor.Bunu;

Kod:
<!-- Standard Action Servlet Mapping -->
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.yap</url-pattern>
  </servlet-mapping>
 
şeklinde düzenleyebilirsiniz.Daha sonra ise link verirkende yeni şekliyle vereceksiniz.Örn: HelloAction.yap gibi.
Sayfa başına dön Aşağa gitmek
http://csharp.yetkinforum.com
 
Struts'a Giriş II
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-
» Ado.Net'e Giriş
» Struts'a Giriş I
» Tag Library'e Giriş
» Label kontrolü ve kullanımına giriş
» button kontrolü ve kullanımına giriş

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
C# VE JAVA :: JAVA :: Makaleler-
Buraya geçin: