30. Juli 2010  
  Suche:
 
  Basics
  Code-Galerie
  Forum
  FAQ
  Tipps & Tricks
  Literatur
  Knowledge Base
  Workshops
  JSP-Hosting
  JSP-Engines
  Jobbörse
  Links
  JSP-Sites
  Newsletter
  JSP-Test
  Impressum
  Username:
  
  Passwort:
  
  

  Jetzt registrieren
  Warum registrieren?

  Valid HTML 4.01!
  Valid CSS!

FAQ (Frequently Asked Questions)

13. Struts

13.1

Struts - Was ist das überhaupt?
Struts ist, um es kurz und bündig auszudrücken, ein MVC-Framework. MVC steht dabei für die Model View Controller Architektur, die sich in unterschiedlichen Anwendungsbereichen sowie im WEB-Umfeld bereits als Basisarchitektur verbreitet hat.

Zentraler Anlaufpunkt einer Benutzeranforderung im MVC-Kontext ist der Frontcontroller, welcher Anforderungen (Requests) an sogenannte Handler weiterleitet. Handler wiederum setzen sich aus Actions (JavaBeans) zusammen, die den Zugriff auf das eigentliche Modell einer Web-Applikation kapseln. In der Regel beinhaltet das Modell die Geschäftslogik. Die Abbildung der Geschäftslogik  ist dabei eine Schicht von Java- bzw. Enterprise Java Beans, welche sich wiederum einer Datenzugriffsschicht bedienen um Informationen zu lesen/schreiben.

Im Kontext einer J2EE-Applikation werden oftmals Session Facaden als Eintrittspunkt in den EJB-Layer (Applikationsserverkontext) eingesetzt. Nachdem der Geschäftsvorfall im Modell bearbeitet wurde, wird über einen Dispatcher zur View (JSP-Seite) verzweigt, um das Ergebnis der Bearbeitung zu visualisieren. Für den Transport der Daten vom Modell zur View werden DTO's (Data Transfer Objects) bzw. Value Objects eingesetzt. Für die Visualisierung der Ergebnisdaten werden in der View,  View Helper eingesetzt. View Helper können Tag Libraries bzw. JavaBeans sein, die die Ausgabe der Ergebnisdaten entsprechend dem zuvor definierten Layout anzeigen.

Der Front Controller entkoppelt die Geschäftslogik einer Anwendung von der Visualisierung. Aufgrund des zentralen Ansatzes ist die Geschäftslogik nicht mehr über viele JSP-Seiten verteilt. Die Erweiter- und Wartbarkeit wird dadurch erleichtert. Die Definition neuer Actions sowie der Views erfolgt außerhalb des Source Codes, sodass sehr schnell auf veränderliche Prozesse reagiert werden kann.

Struts ist Teil der Jakarta-Projekte; Entsprechende Informationen zu dem Framework sowie der aktuelle Releasestand ist der Jakarta-Webseite zu entnehmen:  http://jakarta.apache.org/struts

Autor: shark

 
13.2

Wie verwendet man Struts Logic Tags?
Mit den Struts Logic Tags können in einer JSP-Seite vergleiche auf Basis von Request- und Session-Attributen durchgeführt werden.

Beispiel "Request":
-----------------------------

JSP-Seite-1

<%-- schreibe reqvalue in das reqkey attribut --%>
<%request.setAttribute("reqkey","reqvalue");%>
<logic:forward name="welcome"/>

JSP-Seite-2

<b><bean:write name="reqkey" scope="request"/></b>
<br>
<logic:match name="reqkey" value="reqvalue" scope="request">
  ...reqvalue erkannt...
</logic:match>
<br>
<logic:equal name="reqkey" value="reqvalue" scope="request">
  ...reqvalue erkannt...
</logic:equal>

Beispiel "Session":
-----------------------------

JSP-Seite-1

<%-- schreibe reqvalue in das reqkey attribut --%>
<%request.getSession().setAttribute("reqkey","reqvalue");%>
<logic:forward name="welcome"/>

JSP-Seite-2

<b><bean:write name="reqkey" scope="session"/></b>
<br>
<logic:match name="reqkey" value="reqvalue" scope="session">
  ...reqvalue erkannt...
</logic:match>
<br>
<logic:equal name="reqkey" value="reqvalue" scope="session">
  ...reqvalue erkannt...
</logic:equal>

Mit dieser Technik können auch Standard-Requestparameter verarbeitet werden (Beispiel Scheme-Parameter):

<bean:page id = "reqid" property="request"/>

<logic:match name="reqid" property="scheme" value="http">
  ...dies ist keine sichere seite...
</logic:match>

Autor: shark

 

Zurück


Hinweis: Auf dieser Seite liegen Links zu anderen Seiten im Internet. Für alle diese Links gilt: Wir betonen ausdrücklich, daß wir keinerlei Einfluß auf die Gestaltung und die Inhalte der gelinkten Seiten haben. Deshalb distanzieren wir uns hiermit ausdrücklich von allen Inhalten aller gelinkten Seiten auf dieser Homepage und machen uns ihre Inhalte nicht zueigen. Diese Erklärung gilt für alle auf unserer Homepage angebrachten Links

Redaktion/Betreiber von JSP-Develop übernehmen keinerlei Gewährleistung und Verantwortung für die Richtig- und/oder Vollständigkeit von den auf den Webseiten JSP-Develop veröffentlichten Source Codes. Die Verantwortung der Verwendung/Anwendung sowie etwaige Modifikation der hier veröffentlichten Sourcen obliegt einzig dem Benutzer der Webseite, welche die veröffentlichten Sourcen in einer Applikation/Anwendung einsetzt. Durch das Kopieren und/oder Benutzen der Sourcen in einer Applikation/Anwendung bzw. etwaigen Abschriften wird dieser Rechtshinweis anerkannt.

Java, JSP, JavaServer Pages, J2EE, EJB, JDBC, JNDI, JTA, Sun, Sun Microsystems are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and in other countries. IBM, WebSphere are trademarks or registered trademarks of International Business Machines Corporation. Other trademarks and registered trademarks are the property of their respective owners.