ERLEDIGT
NEIN
NEIN
ANTWORTEN
6
6
ZUGRIFFE
482
482
EMPFEHLEN
-
13.09.11 08:57 #1
- Registriert seit
- Sep 2003
- Ort
- Saarbrücken
- Beiträge
- 47
Hallo alle zusammen,
ist es normal, dass bei JSF ein ActionListener bereits beim Laden bzw. Aktualisieren der Seite gestartet wird? Das ist überhaupt nicht in meinem Sinn, da der Listener zu einer Anlegen-Schaltfläche gehört, um einen neuen Datensatz in einer Datenbank anzulegen. Und das soll natürlich nicht bei jedem Aktualisieren oder Laden der Seite geschehen, sondern wirklich nur, wenn die Schaltfläche auch betätigt wird.
Das ist der Listener auf meiner JSF-Seite:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<h:panelGrid columns="2"> <h:outputLabel for="txtName"> <h:outputText value="Name:" /> </h:outputLabel> <h:inputText id="txtName" value="#{sightView.sight.sightName}" /> <h:outputLabel for="txtPrice"> <h:outputText value="Eintrittspreis:" /> </h:outputLabel> <h:inputText id="txtPrice" value="#{sightView.sight.admissionPrice}" /> <f:facet name="footer"> <h:commandButton value="Neu anlegen" actionListener="#{sightView.newSight}" /> </f:facet> </h:panelGrid>
Und hier der dazugehörige Java-Code:
Code :1 2 3
public void newSight(ActionEvent event) { sightControl.saveSight(sight); }
Vielen Dank,
Christopher
-
hey, hast du ein <h:form></h:form> um dein konstrukt, wenn nicht probiers mal mit. In deinem Post sieht man ja nicht deine komplette jsf-seite, deswegen frage ich.
Ich selber habs noch nicht ActionListener mit jsf probiert, habs bisher so gemacht, dass ich mit action="#{....}" direkt die gewünschte Methode aufgerufen habe anstatt über einen ActionListener, probiersmal mit action ob das was ändert.
-
13.09.11 14:50 #3SE Tutorials.de Gastzugang
Also soweit wie ich JSP/JSF verstehe ist das mit einem ActionListener so nicht möglich da dieser ja auf ein ActionEvent wartet , du aber über HTTP nunmal so was nicht senden kannst *zumindest nicht ohne RMI*. Von daher wirst du wohl mit einem "normalen" Forumlar arbeiten und die eingaben auswerten müssen.
-
13.09.11 15:38 #4
- Registriert seit
- Dec 2009
- Beiträge
- 125
Hallo,
seltsam, ich kann da spontan jetzt keinen Fehler entdecken. Falls der Button nicht durch eine Form eingeschlossen sein sollte, sollte es überhaupt nicht möglich sein, dass er einen Event absetzt aber da die eventmethode automatisch ausgelöst wird, gehe ich davon aus, dass die methode durch einen anderen Event aufgerufen wird.Einfach mal STRG-F in der xhtml nach "sightView.newSight" suchen oder in der Java-Klasse rechtsklick auf die methode => open call hierachy.
Ansonsten tausche mal das Attribut actionListener durch eine einfache Action aus:
Code :1 2 3
<h:form> <h:commandButton action="#{sightView.newSight}" value="test" /> </h:form>
Code java:1 2 3
public void newSight() { //... }
action = für Business-Logik / Navigationhandling
actionListener = Interface-Logik
Ansonsten, hast du den richtigen ActionEvent aus javax.faces.event.* importiert? Das hat mich nämlich mal einen halben Tag gekostet.
Hier nochmal ein StepByStep-Beispiel:
http://johnderinger.wordpress.com/20...ent-listeners/
http://books.google.de/books?id=VA7m...page&q&f=false
http://books.google.de/books?id=x8YY...page&q&f=false
*EDIT* füg mal bitte in der Event-Methode ein getSource bzw ein getComponent hinzu, dann sehen wir genau wo der Event herkommt.
Gruß
SebastianGeändert von sebastianb (13.09.11 um 15:40 Uhr)
-
13.09.11 16:04 #5
- Registriert seit
- Dec 2009
- Beiträge
- 125
@Spike
Das mit den Events ist unter JSF schon möglich. Sobald du auf deiner Seite einen Button klickst, wird zuerst ein ganz normaler HTTP-Request an den Server geschickt. Dieser wird dann vom Controller/FacesServlet im Servlet-Container entgegengenommen und an das jeweilige ManagedBean/Methode weiterdeligiert.
http://javathreads.de/2009/10/model-...er-controller/
Gruß
Sebastian
-
13.09.11 18:09 #6SE Tutorials.de Gastzugang
Ahh ... danke für die Info. Ich kenne mich auf dem Gebiet EE , JSP / JSF halt nicht so aus ... und mit Beans habe ich noch nie zu tun gehabt.
-
13.09.11 19:19 #7
- Registriert seit
- Dec 2009
- Beiträge
- 125
Kein Problem, hast mir ja auch schon ein paar mal ein paar nette Tipps gegeben
Nichtsdestotrotz ist JSF ein sehr interessante Technik, bei der es sich auf jeden Fall mal lohnt reinzuschauen - außerdem ist die Lernkurve recht steil 
Gruß Sebastian
Ähnliche Themen
-
Tabs beim Laden der Seite auswählen
Von joky_joky im Forum PHPAntworten: 2Letzter Beitrag: 24.04.09, 12:48 -
Ausgabe beim Laden der Seite....
Von jmn im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 21.04.08, 16:44 -
Beim Laden, Seite in den Vorgergrund
Von Cusco im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 27.08.05, 10:35 -
einmaliges aktualisieren beim laden der seite
Von schneeWITCHen im Forum HTML & XHTMLAntworten: 13Letzter Beitrag: 22.01.03, 20:38 -
Eine Seite ruft einen Link in einer bereits vorhandenen Seite auf?
Von Dominion im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 17.08.02, 18:24





Zitieren
Login





