Thema: Apache Struts + Tiles

Werbung
Vortrag
Thema:
Apache Struts + Tiles
Mohamed Haji | Julian Cordes | Robin Röttger | Web 2.0 | WS 2014/2015
1
Inhalte
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion
2
05/11/14
Einleitung
Was ist Struts?
» 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
!
3
05/11/14
Einleitung
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
!
4
05/11/14
Einleitung
MVC-Architektur angewandt in Struts
» 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
5
05/11/14
Einleitung
MVC-Architektur
Quelle: http://www.journaldev.com/2134/struts-2-tutorial-for-beginners-hello-world-struts-application
6
05/11/14
Inhalte des Vortrags
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion
7
05/11/14
Grundlegendes mit Struts
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
8
05/11/14
Grundlegendes mit Struts
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>!
9
05/11/14
Grundlegendes mit Struts
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>!
10
05/11/14
Grundlegendes mit Struts
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 RequestParametern und Klassenvariablen
11
05/11/14
Grundlegendes mit Struts
LoginAction Klasse
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;!
!!!!}!
!!!!…!
!!!!!!
}!
12
05/11/14
Grundlegendes mit Struts
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>!
13
05/11/14
Grundlegendes mit Struts
Finale Resultat
14
05/11/14
Inhalte des Vortrags
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion
15
05/11/14
Apache Tiles (mit Struts)
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
16
05/11/14
Apache Tiles (mit Struts)
Composite View Pattern in Tiles
HEADER
MENU
CONTENT PAGE 2
1
FOOTER
17
05/11/14
Apache Tiles (mit Struts)
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
18
05/11/14
Apache Tiles (mit Struts)
tiles.xml - Beispiel
19
05/11/14
Apache Tiles (mit Struts)
baseLayout.jsp
20
05/11/14
Apache Tiles (mit Struts)
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
21
05/11/14
Apache Tiles (mit Struts)
struts.xml - Beispiel mit Tiles
localhost:8080/TestProject/page1.action
22
05/11/14
Apache Tiles (mit Struts)
Action-Klasse MenuAction
23
05/11/14
Ende des Vortrags
Offene Fragen?
24
05/11/14
Inhalte des Vortrags
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion
25
05/11/14
Inhalte des Vortrags
1. Einleitung
2. Grundlegendes mit Struts
3. Apache Tiles (mit Struts)
4. Praktikum
5. Diskussion
26
05/11/14
Diskussion
27
05/11/14
Ende des Vortrags
Literatur
» http://www.mkyong.com/struts/struts-tilesframework-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
Herunterladen