thema: apache struts + tiles - fh-muenster.de...einleitung 3 » struts ist ein framework für...
TRANSCRIPT
Vortrag
Thema: Apache Struts + Tiles
Mohamed Haji | Julian Cordes | Robin Röttger | Web 2.0 | WS 2014/20151
Inhalte
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion05/11/142
Einleitung
3
» Struts ist ein Framework für Java-Webanwendungen !» Es setzt das MVC 2-Muster um !» Wurde im Jahr 2000 gegründet !» Entwicklung der Version 1.x wurde eingestellt und
wird nicht mehr länger unterstützt !
05/11/14
Was ist Struts?
Einleitung
4
Wofür wird Struts verwenden?
Folgende Probleme werden von Struts adressiert: !» Aufrufen der richtigen Klasse abhängig von der URL » mehrsprachige Webseiten » die Überprüfung von Formulareingaben » die Konvertierung von Formularfeldern in Datentypen » die Anzeige von Fehlermeldungen bei Fehleingaben !
05/11/14
Einleitung
5
» Model – beinhaltet die Geschäftslogik – ist kein Bestandteil von Struts
» View – übernehmen JavaServer Pages. – bestehen aus HTML-Tags und eigenen Struts-Tags
» Controller – Anfragen werden zu Action-Klassen weitergeleitet – Weiterleitungen werden in XML Datei definiert
MVC-Architektur angewandt in Struts
05/11/14
Einleitung
6
MVC-Architektur
Quelle: http://www.journaldev.com/2134/struts-2-tutorial-for-beginners-hello-world-struts-application
05/11/14
Inhalte des Vortrags
7
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion05/11/14
Grundlegendes mit Struts
8
Resultpages
» Können aus diversen Template-Engines bestehen - statisches HTML oder JSPs - Freemarker - Velocity
» Sie enthalten die View der Anwendung » Können Struts-Tags enthalten » Struts-Tags sind JSP-Custom-Tags
05/11/14
Grundlegendes mit Struts
9
Beispiel für eine Resultpage
<%@$page$language="java"$contentType="text/html;-charset=US4ASCII"$$$$$pageEncoding="US4ASCII"%>$<!DOCTYPE$html$PUBLIC$"C//W3C//DTD$HTML$4.01$Transitional//EN"$"http://www.w3.org/TR/html4/loose.dtd">$<%CC$Using$Struts2$Tags$in$JSP$CC%>$<%@$taglib$uri="/struts4tags"$prefix="s"%>$<html>$<head>$<meta$httpCequiv="Content4Type"$content="text/html;-charset=US4ASCII">$<title>Login$Page</title>$</head>$<body>$<h3>Welcome$User,$please$login$below</h3>$<s:form$action="login">$$$$$<s:textfield$name="name"$label="User-Name"></s:textfield>$$$$$<s:textfield$name="pwd"$label="Password"$type="password"></s:textfield>$$$$$<s:submit$value="Login"></s:submit>$</s:form>$</body>$</html>!
05/11/14
Grundlegendes mit Struts
10
Beispiel für eine Resultpage
<%@$page$language="java"$contentType="text/html;-charset=US4ASCII"$$$$$pageEncoding="US4ASCII"%>$<%@$taglib$uri="/struts4tags"$prefix="s"%>$<!DOCTYPE$html$PUBLIC$"G//W3C//DTD$HTML$4.01$Transitional//EN"$"http://www.w3.org/TR/html4/loose.dtd">$<html>$<head>$<meta$httpGequiv="Content4Type"$content="text/html;-charset=US4ASCII">$<title>Welcome$Page</title>$</head>$<body>$<h3>Welcome$<s:property$value="name"></s:property></h3>$</body>$</html>!
05/11/14
Grundlegendes mit Struts
11
Action-Klassen
» Action-Klassen sind der Controller der Architektur
» Verarbeiten Requests in der Execute Methode
» Können sowohl über die struts.xml als auch über Java Annotations (@action) deklariert
» Können Java Bean mit Getter und Setter enthalten -> Struts übernimmt dabei das Mapping zwischen Request-Parametern und Klassenvariablen
05/11/14
Grundlegendes mit Struts
12
LoginAction Klasse
05/11/14
public!class!LoginAction!implements!Action!{!! !!!!!private!String!name;!!!!!private!String!pwd;!!!!!!!!!!public!String!execute()!throws!Exception!{!!!!!! !!!!!!!!!if("admin".equals(getName())!&&!"admin".equals(getPwd()))!{!!!!!!!!!! return!SUCCESS;!!!!!!!!!}!else!{!!!!!!!!!! return!"ERROR";!!!!!!!!!}!!!!!}!!!!!!//Java!Bean!to!hold!the!form!parameters!!!!!public!String!getName()!{!!!!!!!!!return!name;!!!!!}!!!!!public!void!setName(String!name)!{!!!!!!!!!this.name!=!name;!!!!!}!!!!!…!!!!!!!}!
Grundlegendes mit Struts
13
struts.xml
<?xml&version="1.0"&encoding="UTF(8"?>&&&<!DOCTYPE&struts&PUBLIC&&&&&"B//Apache&Software&Foundation//DTD&Struts&Configuration&2.3//EN"&&&&&"http://struts.apache.org/dtds/strutsB2.3.dtd">&<struts>&&&<package&name="user"&namespace="/User"&extends="struts(default">&&&&&<action&name="home">&&&&&&&&&<result>/login.jsp</result>&&&&&</action>&&&&&<action&name="login"&class="com.journaldev.struts2.action.LoginAction">&&&&&<result&name="SUCCESS">/welcome.jsp</result>&&&&&<result&name="ERROR">/error.jsp</result>&&&&&</action>&&&</package>&&&</struts>!
05/11/14
Grundlegendes mit Struts
14
Finale Resultat
05/11/14
Inhalte des Vortrags
15
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion05/11/14
Apache Tiles (mit Struts)
16
Grundlegendes zu Tiles
» Template-Framework für J2EE
» Basiert auf dem Composite Pattern
!
» Vereinfacht die Entwicklung von User-Interfaces
» Wird oft in Kombination mit anderen Frameworks wie
Struts oder Spring verwendet
05/11/14
17
HEADER
MENU CONTENT PAGE 1
FOOTER
CONTENT PAGE 2
Apache Tiles (mit Struts) Composite View Pattern in Tiles
05/11/14
Apache Tiles (mit Struts)
18
tiles.xml
» Definition eines Grundlayouts
» Üblich: Header, Menü, Body und Footer
» Statische Elemente als einzelne JSP
!
» Die spezifischen Content-Seiten werden von dem
Grundlayout „extended“
» Spezifische Bereiche definiert mit eigener JSP
05/11/14
Apache Tiles (mit Struts)
19
tiles.xml - Beispiel
05/11/14
Apache Tiles (mit Struts)
20
baseLayout.jsp
05/11/14
Apache Tiles (mit Struts)
21
Mapping der URLs durch Struts
» Mapping URLs Content Pages
– Ablauf per Struts-Action-Klassen
– einfache und komplexe Steuerungen möglich
!
» Mapping der URLs zu Action-Klassen in struts.xml
» Einfache oder komplexe Anwendungsfälle abgedeckt
05/11/14
Apache Tiles (mit Struts)
22
struts.xml - Beispiel mit Tiles
05/11/14
localhost:8080/TestProject/page1.action
Apache Tiles (mit Struts)
23
Action-Klasse MenuAction
05/11/14
Ende des Vortrags
Offene Fragen?
24 05/11/14
Inhalte des Vortrags
25
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion05/11/14
Inhalte des Vortrags
26
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion05/11/14
Diskussion
27 05/11/14
Ende des VortragsLiteratur
» http://www.mkyong.com/struts/struts-tiles-framework-example/
» http://www.tutorialspoint.com/struts_2/struts_tiles.htm
» http://tiles.apache.org/2.2/framework/tutorial/index.html
» „Struts 2 in action“ (Brown, Stanlick, Davis) [2008]
28 05/11/14
Vielen Dank für Ihre Aufmerksamkeit!
29 05/11/14