Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für...

29
Vortrag Thema: Apache Struts + Tiles Mohamed Haji | Julian Cordes | Robin Röttger | Web 2.0 | WS 2014/2015 1

Transcript of Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für...

Page 1: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Vortrag

Thema: Apache Struts + Tiles

Mohamed Haji | Julian Cordes | Robin Röttger | Web 2.0 | WS 2014/20151

Page 2: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Inhalte

1. Einleitung

2. Grundlegendes mit Struts

3. Apache Tiles (mit Struts)

4. Praktikum

5. Diskussion05/11/142

Page 3: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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?

Page 4: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 5: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 6: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Einleitung

6

MVC-Architektur

Quelle: http://www.journaldev.com/2134/struts-2-tutorial-for-beginners-hello-world-struts-application

05/11/14

Page 7: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Inhalte des Vortrags

7

1. Einleitung

2. Grundlegendes mit Struts

3. Apache Tiles (mit Struts)

4. Praktikum

5. Diskussion05/11/14

Page 8: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 9: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 10: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 11: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 12: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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;!!!!!}!!!!!…!!!!!!!}!

Page 13: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 14: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Grundlegendes mit Struts

14

Finale Resultat

05/11/14

Page 15: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Inhalte des Vortrags

15

1. Einleitung

2. Grundlegendes mit Struts

3. Apache Tiles (mit Struts)

4. Praktikum

5. Diskussion05/11/14

Page 16: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 17: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

17

HEADER

MENU CONTENT PAGE 1

FOOTER

CONTENT PAGE 2

Apache Tiles (mit Struts) Composite View Pattern in Tiles

05/11/14

Page 18: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 19: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Apache Tiles (mit Struts)

19

tiles.xml - Beispiel

05/11/14

Page 20: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Apache Tiles (mit Struts)

20

baseLayout.jsp

05/11/14

Page 21: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 22: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Apache Tiles (mit Struts)

22

struts.xml - Beispiel mit Tiles

05/11/14

localhost:8080/TestProject/page1.action

Page 23: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Apache Tiles (mit Struts)

23

Action-Klasse MenuAction

05/11/14

Page 24: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Ende des Vortrags

Offene Fragen?

24 05/11/14

Page 25: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Inhalte des Vortrags

25

1. Einleitung

2. Grundlegendes mit Struts

3. Apache Tiles (mit Struts)

4. Praktikum

5. Diskussion05/11/14

Page 26: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Inhalte des Vortrags

26

1. Einleitung

2. Grundlegendes mit Struts

3. Apache Tiles (mit Struts)

4. Praktikum

5. Diskussion05/11/14

Page 27: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Diskussion

27 05/11/14

Page 28: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

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

Page 29: Thema: Apache Struts + Tiles - fh-muenster.de...Einleitung 3 » Struts ist ein Framework für Java-Webanwendungen ! » Es setzt das MVC 2-Muster um ! » Wurde im Jahr 2000 gegründet

Vielen Dank für Ihre Aufmerksamkeit!

29 05/11/14