action-Methode wird nicht aufgerufen

Status
Nicht offen für weitere Antworten.

Andreas29

Bekanntes Mitglied
Hi Leute,

ich habe in JSF folgenden commandButton erzeugt:
Code:
<h:commandButton style="position:absolute;left:230px;top:400px;" value="#{msg.button_schedule_new_job}" action="#{jobDetailBackingBean.test}" />

Wie man sieht, will ich von meiner Managed Bean die Methode test aufrufen. Die sieht so aus:
Code:
public String test(ActionEvent event) {
		logger.debug("enter 'test' on 'JobDetailBackingBean'");
		logger.debug("leaving 'test' on 'JobDetailBackingBean'");
		return "success";
	}

Nur leider rennt er mir nicht in die Methode rein. Woran kann sowas liegen?
Ich verwende die MyFaces Implementierung auf einem Bea Weblogic 8.1 Server mit Java 1.4.2.
Achso, die managed-Bean deklaration in der faces-config sieht so aus:
Code:
<managed-bean>
		<managed-bean-name>
		jobDetailBackingBean</managed-bean-name>
		<managed-bean-class>
		de.conti.gutsintegration.scheduling.webapp.bean.JobDetailBackingBean</managed-bean-class>
		<managed-bean-scope>
		request</managed-bean-scope>
	</managed-bean>

Vielen Dank für jeden Tipp und Grüße,
Andreas
 

happy_robot

Bekanntes Mitglied
du rufst hier eine actionlistener methode auf!

nimm den ActionEvent-Parameter weg und es klappt.
die signatur muss zu 100% stimmen.

gewöhn dir so was an, da man sich da oft "vertut":

Code:
   public void myActionListener(ActionEvent event) {
          // mach was
  }

   public String myAction() {
        myActionListener(null);
        return null; // oder was auch immer 
   }


EDIT:

ihr solltet auch mal eure package-benamsumgs-strategie überdenken.

"de.conti.gutsintegration.scheduling.webapp.bean.JobDetailBackingBean" scheint mir nicht wirklich cool zu sein :D
 

Andreas29

Bekanntes Mitglied
Hi,

erstmal vielen Dank für eure Antworten. Ich habe die action-Methode jetzt so umgebaut:
Code:
public String scheduleNewJob()

Leider ohne Erfolg. Kann es was mit der MyFaces-Implementierung zu tun haben? Ich verwende momentan Version 1.1.5. Werde jetzt mal 1.2.0 ausprobieren.

Grüße,
Andreas
 

Andreas29

Bekanntes Mitglied
Hi,

habe jetzt MyFaces 1.2.0 getestet und festgestellt, dass dort Java 1.5.0 vorrausgesetzt wird, welches ich leider nicht verwenden kann. Von daher geht dieser Weg leider nicht. Naja, dann werde ich jetzt nochmal Sun RI probieren.

Danke für die Hilfe.
 

number8

Aktives Mitglied
Auf jeden Fall solltest Du, wenn nicht schon vorhanden, mal ein h:messages ein bauen. Ansonsten...steht der h:commandButton in einer form?

((Es tut zwar denke ich nichts zur Sache, aber der scope der bean steht auf Request. Das soll so sein?))
 

happy_robot

Bekanntes Mitglied
number8 hat gesagt.:
Ansonsten...steht der h:commandButton in einer form?
au ja...das ist mir am anfang auch oft passiert :) ohne form drumrum wird generell nix an aktionen ausgeführt. daran kann man echt verzweifeln.

number8 hat gesagt.:
((Es tut zwar denke ich nichts zur Sache, aber der scope der bean steht auf Request. Das soll so sein?))
könnte auch durchaus ein fehler sein, da das bean schon wieder weg ist nachdem die view erzeugt wurde, zumindest laut definition. hier gibt es aber teilweise sehr abenteuerliche verhalten in den verschiedenen frameworks. sich generell auf session-beans zu beschränken könnte hier die bessere wahl sein.

ich fass mal grad zusammen, damit das auch direkt rockt :D :

- bean-scope in der faces-config.xml auf "session" setzen

- jsp
Code:
   ........
   <h:form> 
     <h:commandButton action="#{myBean.action}" value="Klick!"/> 
   </h:form>

- in myBean MUSS eine methode
Code:
         public String action() {
              return null;
         }

sein (void als Rückgabewert geht auch, Signatur muss aber stimmen!).
 

Andreas29

Bekanntes Mitglied
Hi Leute,

erstmal vielen Dank für die vielen nützlichen Hinweise, aber die Lösung des Problems ist sehr einfach:
MyFaces unter Weblogic 8.1 verweigert die Formularausführung, sobald in der JSP-Seite entweder <%@ include... %> oder <jsp:include /> Tags stehen (sofern man ersteres als Tag bezeichnen kann... :) ). Warum dem so ist, habe ich noch nicht herausgefunden, aber nachdem ich die entfernt habe, funktionierte es auf einmal wieder. Muss ich wohl mal in der MyFaces Mailingliste nachfragen, denn normal ist dieses Verhalten nicht. Und ich brauche eigentlich die includes...

Naja, es wird sich schon eine Lösung finden.

Grüße,
Andreas
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Struts: zwei JSP's nutzen eine Action Allgemeines EE 5
M Action wird 2 mal durchlaufen Allgemeines EE 3
A /jsp/RegisterView.jsp(3,5) Invalid standard action Allgemeines EE 6
B JSF: Action #{myBean.myAction} durch Tag auslösen Allgemeines EE 3
R Struts-Action in JSP abfragen? Allgemeines EE 2
D JSF Problem mit Action Allgemeines EE 2
L Struts - Action auslösen bei Browser Back Allgemeines EE 2
N Struts - Problem mit <html:link> Action Allgemeines EE 3
D action url nach der umleitung finden Allgemeines EE 21
M Action - DispatchAction Allgemeines EE 7
S Action-Mapping? Was ist das? Allgemeines EE 3
clemson [Struts] Einer Action Parameter übergeben Allgemeines EE 2
clemson [Struts] Innerhalb Action auf form zugreifen Allgemeines EE 4
Dimax JSP Auf button click java methode ausführen.Ist das möglich? Allgemeines EE 6
M doGet()-Methode wird nicht geladen Allgemeines EE 3
J Mit @Schedule annotierte Methode wird nach einer Weile nicht mehr ausgeführt (JBoss AS 7.2) Allgemeines EE 0
OnDemand Methodenaufruf nach Aufgabenabschluss in Asynch-Methode Allgemeines EE 4
FINF_AW_Alex statische Methode und der EntityManager Allgemeines EE 13
M Wie rufe ich diese Methode auf? Allgemeines EE 1
P Displaytag findet getter-Methode(n) nicht! Allgemeines EE 3
A Timeout nach 30 Minuten Laufzeit einer entfernten Methode Allgemeines EE 3
G Objekt von jsp an set Methode von Bean übergeben! Allgemeines EE 2
J Bean in der init-Methode des Servlets instanzieren Allgemeines EE 9
S In einer Bean-Methode an ndere Beans kommen Allgemeines EE 7
S dringend: jsf: set-Methode aufrufen Allgemeines EE 7
J init-Methode eines Servlet ausführen ohne vorherigen request Allgemeines EE 2
M EJB-Store-Methode Allgemeines EE 2
G Struts-Form: in validate- oder reset-Methode umleiten. Allgemeines EE 3
A validate-Methode in ValidatorForm setzt Regeln ausser Kraft Allgemeines EE 3
B Anstossen einer Methode durch link! Allgemeines EE 4
B Datenbank Resource wird nicht gefunden Allgemeines EE 1
OnDemand JSF Stacktrace wird nicht korrekt ausgegeben Allgemeines EE 1
S Drools - Stop sobald erste Regel getroffen wird Allgemeines EE 2
S a4j:ajax Event wird 2 Mal gefeuert. Allgemeines EE 0
J JBoss, Eclipse, Webseite wird nicht angezeigt? Allgemeines EE 4
Y JSF EJB wird nicht injected Allgemeines EE 18
A Wie kann ich verhinder, dass die seite angezeigt wird? Allgemeines EE 3
P Prozess wird nicht beendet Allgemeines EE 4
C JSP wird nur halb geladen Allgemeines EE 2
G jsp:getProperty wird mehrfach aufgerufen - Warum? Allgemeines EE 3
M taglib wird nicht gefunden Allgemeines EE 9
N JSF + Facelets: Datatable wird nicht angezeigt Allgemeines EE 1
G EJB - EJB wird nicht ins Servlet geladen Allgemeines EE 3
F doFilter wird zwei mal aufgerufen Allgemeines EE 5
P JSF Seite wird nicht gestartet Allgemeines EE 4
B FileInputStream(sPath); file wird nicht gefunden Allgemeines EE 5
F MyFaces und Tiles: <tiles:insert> wird nicht erkannt Allgemeines EE 10
A HttpUnit: Form wird nicht submitted Allgemeines EE 4
G welcher Appserver wird verwendet Allgemeines EE 4
S package wird nicht gefunden Allgemeines EE 2
H Servlet: init() wird 2x ausgeführt Allgemeines EE 8
E Tomcat/Servlet Problem - Servlet wird nicht gefunden Allgemeines EE 8
G properties file im J2EE Server - wo wird genau gesucht? Allgemeines EE 6
F Servlet: DoPost wird zweimal aufgerufen Allgemeines EE 3
M Servlet: CSS der JSP wird bei einem forward nicht gefunden? Allgemeines EE 2
S ResSet wird "vernichtet" Allgemeines EE 5
D HTML-Code von JSP wird in Browser nicht angezeigt?! Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben