21
Übung 11 Betreuer: Verantwortlicher Professor: Multimedia im Netz – Wintersemester 2011/12 Sebastian Löhmann Prof. Dr. Heinrich Hussmann

Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

Übung 11

Betreuer: Verantwortlicher Professor:

Multimedia im Netz – Wintersemester 2011/12

Sebastian Löhmann

Prof. Dr. Heinrich Hussmann

Page 2: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11 2

Organisatorisches

Page 3: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11 3

Zu Blatt 09

Page 4: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11 4

JBoss/Eclipse

• Gab es Probleme bei der Einrichtung der Entwicklungsumgebung?

Page 5: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11 5

Java Server Faces

Page 6: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

JSF: Wiederholung

• Java Framework für Web-Anwendungen

• aktuelle Version ist 2.0

• Ziel: Trennung von Java-Code und Markup

• folgt der Model-View-Controller-Architektur

• Anwendungslogik kann leicht wiederverwendet werden, View austauschbar

6

Page 7: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

Model-View-Controller-Architektur • View o Präsentation, Formulare, … (z.B. HTML) o nimmt Nutzereingaben entgegen (Observer-Pattern)

• Model o Datenmodell, Programmlogik (z.B. Java) o Konstruktor, Getters, Setters

• Controller o Programmsteuerung o bearbeitet Nutzereingaben

7

Page 8: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11 8

View: Konzept

• Interface aus Formularen, Buttons und anderen UI-Komponenten

• Unser Beispiel der letzten Woche: hello.xhtml

• In JSF geschrieben, wird aber bei Aufruf vom Server gerendert und als HTML angezeigt

• Test o http://mmn.medien.ifi.lmu.de:8080/HelloJSF/hello.jsf o Quellcode anzeigen & mit hello.xhtml vergleichen

Page 9: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

View: JSF Tag Libraries • HTML Library (xmlns:h="http://java.sun.com/jsf/html") o Forms, input and output o Grouping, tables o Commands (buttons, links) o Messages

• Core Library (xmlns:f="http://java.sun.com/jsf/core" ) o Views, subviews o Listeners o Data converters o Validators o Internationalisation

9

Page 10: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

View: JSF HTML Tags

• <h:inputText …></h:inputText>

• <h:commandButton ...</h:commandButton>

• Weitere Komponenten unter

http://docs.oracle.com/cd/E17802_01/j2ee/javaee/javaserverfaces/2.0/docs/pdldocs/facelets/index.html

• oben links die h-Library auswählen

10

Page 11: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

View: Navigation

<h:commandButton value="Welcome Me" action="welcome"></h:commandButton>

• durch action="welcome" wird automatisch welcome.jsf aufgerufen

11

Page 12: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

View: Eingabewerte & Bean-Variablen

<h:inputText value="#{helloBean.name}"></h:inputText>

• bei Absenden des Formulars wir automatisch der Setter für die Property „name“ in HelloBean.java aufgerufen und der vom Benutzer eingegebene Wert gesetzt

• helloBean bezeichnet Namen der Java-Bean mit erstem Buchstaben als Lower Case

12

Page 13: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

Managed Bean import javax.faces.bean.ManagedBean; @ManagedBean public class HelloBean { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } }

13

Page 14: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

Controller & Model

• in unserem (simplen) Beispiel ist Controller & Model in HelloBean.java vereinigt

• In komplexeren Anwendungen befindet sich die Logik in eigenen Klassen (Model)

• ManagedBean ist in der Regel der Controller

• Objekte des Models werden durch den Controller erzeugt und Methoden werden durch den Controller aufgerufen

14

Page 15: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

View: Ausgaben

#{helloBean.name}

Ist Kurzform für

<h:outputText value="#{helloBean.name}" />

15

Page 16: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

Listener <h:commandButton id="example" actionListener="#{controller.myHandler} " />

• bestimmt Methode, die im Controller implementiert ist und das Event verarbeitet

public void myHandler(ActionEvent ae) { … }

• Methode im Controller, die das Event verarbeitet

16

Page 17: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

(Sehr) Hilfreiches Tutorial

• http://www.coreservlets.com/JSF-Tutorial/jsf2/

• Wichtige Abschnitte o JSF 2.0: Introduction and Overview o JSF 2.0: Programming Basics o The JSF 2.0 Expression Language o Managed Beans I o Handling GUI (Application) Events

17

Page 18: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11 18

Blatt 10

Page 19: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11 19

Tic Tac Toe

• Aufgabe: das Spiel Tic Tac Toe in JSF entwickeln

• Auf Trennung von View, Controller und Model achten

Page 20: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

18.01.2012 MMN Übung 11

Tic Tac Toe: Hinweise

• Spielfeld-Layout:

• gewonnen, wenn ein Spieler 3 Felder in einer Reihe für sich gewonnen hat:

{ {0, 1, 2}, {3, 4, 5}, {6, 7, 8}, {0, 3, 6}, {1, 4, 7}, {2, 5, 8}, {0, 4, 8}, {6, 4, 2} }

20

Page 21: Multimedia im Netz · 2020-04-11 · 18.01.2012 MMN Übung 11 . JSF: Wiederholung • Java Framework für Web-Anwendungen • aktuelle Version ist 2.0 • Ziel: Trennung von Java-Code

Danke Fragen?