Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Jurian Leinweber Geändert vor über 10 Jahren
1
Publicvoid - Onlinenotes SWOS HS 2011/12
2
Inhalt Vorstellung Website Probleme - Lösungen Quick & easy 2 kalik1, messu2, joosp1, stahm3
3
Vorstellung Website Onlinenotes kalik1, messu2, joosp1, stahm3 3
4
Problem (Primefaces) AJAX Update Notiz Detail (Komponente id=noteDetail) wurde nicht aktualisiert obwohl: … kalik1, messu2, joosp1, stahm3 4
5
Lösung Komponenten IDs werden im HTML Output verschachtelt generiert. Also z.B. id=form:komponente1:komponente2 IDs müssen verschachtelt angegeben werden Alle Komponente mit IDs vergeben, sonst werden generische IDs erstellt kalik1, messu2, joosp1, stahm3 5
6
Problem Objektübergabe auf eine andere Seite Per URL Parameter und auf der neuen Seite mit diesem das Objekt aus der DB holen? In ein Hidden-Field und dann posten? In der action des aktuellen Beans probieren direkt über den Setter das Objekt im anderen Bean zu setzen? … kalik1, messu2, joosp1, stahm3 6
7
Lösung Innerhalb h:commandButton und h:commandLink können sogenannte PropertyActionListener angegeben werden um Daten mitzugeben. kalik1, messu2, joosp1, stahm3 7
8
Problem Aktualität der Objekte / Scope Problem Änderungen an Objekten / Beans wurden nicht überall übernommen und die alten Daten wurden angezeigt führt zu Inkonsistenzen z.B. Anzahl Notes in einem Notebook kalik1, messu2, joosp1, stahm3 8
9
Lösung JPA Cache disablen persistence.xml Cache Shared cache mode: NONE kalik1, messu2, joosp1, stahm3 9
10
Problem JPA Cascade Options Beim Löschen einer Note wurde praktisch alle Daten der DB gelöscht, d.h. alle anderen Notizen, der User, die Notebooks. Fehler wurde zuerst im BackingBean vermutet… kalik1, messu2, joosp1, stahm3 10
11
Lösung In JPA kann definiert werden, welche Actions als Cascaded ausgeführt werden sollen. Diese Option war für alle Modelle auf All gesetzt. Kettenreaktion Individuell pro Modell und Property einstellen! kalik1, messu2, joosp1, stahm3 11
12
Problem URL bleibt die selbe nach Wechsel auf andere Seite Mit sollte man auf die Seite notes.xhtml kommen. Der Inhalt erscheint zwar von notes.xhtml, jedoch ist die URL immer noch die alte. kalik1, messu2, joosp1, stahm3 12
13
Lösung Ist in JSF so, da default mit POST gearbeitet wird. Alternativ mit GET arbeiten Komplizierter zu Implementieren kalik1, messu2, joosp1, stahm3 13
14
Quick & easy Input Validator (1) 1.Klasse erstellen die Validator implementiert 2.Methode validate implementieren 1.Validierungslogik erstellen 2.Wenn NOK: FacesMessage für Fehlermeldung erstellen und ValidatorException(message) werfen. kalik1, messu2, joosp1, stahm3 14
15
Quick & easy Input Validator (2) 3.Validator im faces-config.xml registrieren 4.z.B. innerhalb einbinden: kalik1, messu2, joosp1, stahm3 15
16
Quick & easy Converter (1) 1.Klasse erstellen die Converter implementiert 2.Methode getAsObject implementieren 1.Ein String Repräsentant des Objekts in das effektive Objekt umwandeln 3.Methode getAsString implementieren 1.Das Objekt in ein String Repräsentant umwandeln kalik1, messu2, joosp1, stahm3 16
17
Quick & easy Converter (2) 3.Converter im faces-config.xml registrieren 4.z.B. bei einem Select-Element einbinden: … kalik1, messu2, joosp1, stahm3 17
18
Quick & easy Templating (1) 1.Template (z.B. temp.xhtml) erstellen 2.Facelets Namespace registrieren in HTML-Tag 3.Ersetzbare Content-Bereiche markieren mit 4.Auf der effektiven Content-Seite Template einbinden … kalik1, messu2, joosp1, stahm3 18
19
Quick & easy Templating (2) 5.Innerhalb können nun die Content-Blöcke definiert werden mit CONTENT kalik1, messu2, joosp1, stahm3 19
20
Fragen? kalik1, messu2, joosp1, stahm3 20
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.