JSF: commandButton reagiert nicht

Status
Nicht offen für weitere Antworten.
L

LordZed

Gast
Hi! Ich habe eine Seite wo ich aus einer ComboBox eine Vorlage auswähle. Mit einem Button daneben soll die Liste in dieser ComboBox aktualisiert werden. Dafür existiert in der Bean der Liste eine entsprechende Methode.

Wenn ich nun den Button drücke passiert allerdings nichts. Ich habe auch schon mit dem Debuger einen Breakpointer in die Methode gesetzt und gesehen, dass er dort garnicht reinspringt. Kann mir jemand sagen, wo der Fehler liegt?

Hier die nötigen Dateien:
vorlage.jsp
Code:
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%>

<f:loadBundle basename="de.amb.anw.c2s.lang.resources" var="messages" />

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%
	String path = request.getContextPath();
	String basePath = request.getScheme() + "://"
			+ request.getServerName() + ":" + request.getServerPort()
			+ path + "/";
%>
<%@page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<html>
<head>
<base href="<%=basePath%>">
<title>C2S-Auftragsgenerator</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="GENERATOR" content="Rational Software Architect">
<LINK href="css/allgemein.css" rel="stylesheet" type="text/css">
<LINK href="css/vorlage.css" rel="stylesheet" type="text/css">
</head>
<body>
<div class="container">
<div class="header">Version 1.0 [img]images/amgis_logo.jpg[/img]
<h1>C2S-Auftragsgenerator</h1>
</div>
<f:view>
	<h:form id="formVorlage">
		


			<h:outputText value="#{messages.vorlage_text}"/>
		</p>
		


			<h:selectOneMenu id="vorlage" value="#{auftrag.auftragSource}">
				<f:selectItems value="#{auftragsliste.auftragsliste}" />
			</h:selectOneMenu>
			<%--
			<h:commandButton id="refresh"
				actionListener="#{auftragsliste.doRefresh}"
				value="#{messages.refresh}" alt="#{messages.refresh_alt}" />
			--%>
		</p>
		


			<h:commandButton id="submit" action="submit"
				value="#{messages.submit}" alt="#{messages.submit_alt}" />
		</p>
	</h:form>
</f:view>
</div>
</body>
</html>

web.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app id="WebApp_ID">
	<display-name>Editor</display-name>

	
	<context-param>
		<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
		<param-value>client</param-value>
	</context-param>
	<context-param>
		<param-name>javax.faces.CONFIG_FILES</param-name>
		<param-value>/WEB-INF/faces-config.xml</param-value>
	</context-param>

	
	<servlet>
		<servlet-name>Faces Servlet</servlet-name>
		<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>

	
	<servlet-mapping>
		<servlet-name>Faces Servlet</servlet-name>
		<url-pattern>*.jsf</url-pattern>
	</servlet-mapping>
	
	<welcome-file-list>
		<welcome-file>index.html</welcome-file>
		<welcome-file>index.htm</welcome-file>
		<welcome-file>index.jsp</welcome-file>
		<welcome-file>default.html</welcome-file>
		<welcome-file>default.htm</welcome-file>
		<welcome-file>default.jsp</welcome-file>
	</welcome-file-list>
</web-app>

faces-config.xml
Code:
<faces-config>
	<application>
		<message-bundle>lang.resources</message-bundle>
		<locale-config>
			<default-locale>en</default-locale>
			<supported-locale>de</supported-locale>
		</locale-config>
	</application>
	
	<navigation-rule>
		<description>Aktionen bei der Auftragsauswahl</description>
		<from-view-id>/jsf/EditorVorlage.jsp</from-view-id>
		<navigation-case>
			<description>Vorlage ausgewaehlt</description>
			<from-outcome>submit</from-outcome>
			<to-view-id>/jsf/EditorEdit.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
	
	<managed-bean>
		<description>Liste aller vorhandenen Aufträge</description>
		<managed-bean-name>auftragsliste</managed-bean-name>
		<managed-bean-class>beans.AuftragslisteBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<description>Daten eines einzelnen Auftrages</description>
		<managed-bean-name>auftrag</managed-bean-name>
		<managed-bean-class>beans.AuftragBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
</faces-config>
 
L

LordZed

Gast
sehe gerade die Zeile mit dem Button ist hier noch auskommentiert! Ist sie natürlich nicht, sonst könnte ich den Button ja garnicht klicken! ;)
 
L

L

Gast
Interessanter als faces-config/web.xml wäre hier der Code aus deiner Bean..

ActionListener wird für sowas hier nicht wirklich gebraucht, ne normale action (oder ajax) tut es auch:

Code:
.jsp:
<h:commandButton action="#{auftragsliste.refresh}" value="Refresh" />

.java:
public String refresh(){
 refreshSelectItems();
 return null;
}

private void refreshSelectItems(){
....
}

keine rocket-science :p
 
L

LordZed

Gast
Ich hatte jetzt den ActionListener genommen, weil ich ja nicht wirklich weiter navigiere, aber auch mit action klappt es nicht. Als ActionListener sieht die Funktion der Bean so aus:

Code:
public void doRefresh(ActionEvent event) {
	this.refreshAuftragsliste();
}

Als Action wie folgt und zusätzlich eine Navigation-Rule "refresh", die auf die Seite selbst führt:
Code:
public StringdoRefresh() {
	this.refreshAuftragsliste();
	return "refresh";
}

Funktionieren tuts das trotzdem nicht! Was in der Methode refreshAuftragsliste() passiert ist mehr oder weniger unerheblich, da er die Methode problemlos ausführt, wenn ich sie im Konstruktor der Bean aufrufe.
 
L

L

Gast
Problem ist also eigentlich nur, dass die Action-Methode nicht aufgerufen wird... kann nicht sein :p

Eine extra Navigationsregel, um auf die gleiche Seite zu navigieren, braucht man nicht. Das wird durch ein "return null" bzw return "" realisiert.

ActionListener verwendet man, wenn man UI-Parameter bzw. Elemente in die Bean übergeben will.

Der Code für den commandButton ist definitiv korrekt, Signatur der Action-Methode passt, Bean ist angelegt. Hmm pack' mal ein js-onclick auf deinen Button, ala:

<h:commandButton action="#{auftragsöiste.refresh}" onClick="submit();" /> :p

Muss aber auch ohne Js gehen .....
 
G

Guest

Gast
Er schickt die Form ja auch ab, aber es passiert halt nichts... ich such auch schon seit 2 Stunden nach dem Fehler! In einem anderen Projekt, wo es nach dem selben Prinzip arbeitet funktioniert es ^^
 
J

jemand aus dem wald

Gast
Zieh dir am besten einfach mal die Sourcen deiner JSF Implementierung und häng dich etwas in die Interna rein, um genaueres zu erfahren. Mein erster Gedanke ist ja, dass es gar nicht zur Invoke Application Phase kommt. Ein typischer Anfängerfehler ist ja, dass z.B. ein Validierungsfehler auftritt. Interessant sind dazu die Implementierungen der Klasse Lifecycle (ich glaub die heißt sowohl in MyFaces als auch in Mojarra LifecycleImpl). In der Klasse siehst du im Debugger relativ einfach, in welcher Phase du dich gerade befindest (ähnliches könnte man auch mit einem PhaseListener erzielen).

Ansonsten kannst du ja auch mal die ActionListener Implementierungen debuggen, um zu erfahren, welche Action Methode wirklich ausgeführt werden soll (vielleicht irrst dich diesbezüglich ja dennoch irgendwie, da bekommst dann auf jeden Fall Gewissheit).
 
L

LordZed

Gast
Ich bin erst am Montag wieder auf der Arbeit, aber dann schaue ich weiter ;) Nen Kollege meinte zu mir es könnte auch sein, dass ich einfach das TEMP-Verzeichniss meines lokalen WebSphere Application Servers mal löschen sollte, dass es daran liegen könnte. Naja :) Montag werde ich weiter nach dem Fehler suchen! Wenns nicht spontan wieder klappt - man weiß ja wie "spontan" Computer manchmal sind ^^ - dann werd ich denke ich mal mit dem PhaseListener durchgucken in welche Phase ich komme!

Danke für die Antworten! Ich melde mich wieder ;)
 
G

Guest

Gast
Ich bin echt etwas verbacken!
Es war garkeine <h:messages /> eingebaut und es trat tatsächlich ein Konvertierungsfehler auf. Allerdings verstehe ich diesen nicht ganz. Er sagt da:
Konvertierungs-Fehler: Wert 'asd.xml' für Modell 'null Converter'.
Für mich heißt das, dass er den String "asd.xml" mit dem "null Converter" nicht konvertieren kann. Klingt logisch, aber wieso nutzt der hier den "null Converter" oder verstehe ich da was falsch!?
 
L

LordZed

Gast
Hab das Problem gefunden!
Die Klasse an die meine ComboBox ihr Ergebnis zurückliefert erwartete ein SelectItem und keinen String. Dachte, weil die Eingabe auch SelectItems sind liefert der als Ausgabe auch SelectItem :-D Ich glaub als ich das geschrieben habe war ich was müde ;)

In der Bean die Variable als String deklariert und alles funzt einwandfrei! Danke für die Hilfe ;)
 
L

LordZed

Gast
Hab das Problem gefunden!
Die Klasse an die meine ComboBox ihr Ergebnis zurückliefert erwartete ein SelectItem und keinen String. Dachte, weil die Eingabe auch SelectItems sind liefert der als Ausgabe auch SelectItem :-D Ich glaub als ich das geschrieben habe war ich was müde ;)

In der Bean die Variable als String deklariert und alles funzt einwandfrei! Danke für die Hilfe ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
F JSF CommandButton innerhalb eines div´s (mit onClick) Web Tier 2
N JSF CommandButton Daten aus anderem Form auslesen Web Tier 3
S Primefaces commandButton in einem Dialog/Form/PanelGrid führt actionListener nicht aus Web Tier 4
M <p:accordionPanel <ui:repeat <p:commandButton Action funktioniert teilweise Web Tier 3
S JSF CommandButton soll keine Request starten! Web Tier 2
K RichFaces CommandButton mit PopUp verwenden Web Tier 2
F PrimeFaces commandButton und actionListener Web Tier 6
aze JSF CommandButton:Action wird nicht ausgeführt Web Tier 2
S [JSF] CommandButton/Link ohne Validierung Web Tier 3
P JSF 1.2 commandButton in dataTable Web Tier 2
M Primefaces COmmandBUtton Web Tier 8
M JSF: CommandButton übergibt den Parameter nicht Web Tier 3
J JSF - CommandButton keine Action Web Tier 14
A JSF: Button reagiert nicht und nicht verständliche Warnung Web Tier 6
D Codierung im Frontend funktioniert nicht richtig Web Tier 2
hjpsoft JSP <TEXTAREA>-Tag unterstützt EL-Variablen nicht Web Tier 7
krgewb Base64 funktioniert nicht, aber btoa funktioniert Web Tier 10
6 JSF Form Attribute nicht an Bean übergeben Web Tier 2
C JSP data wird nicht angezeigt Web Tier 6
M webapp controller funktioniert nicht Web Tier 3
Psypsy Spring Thymeleaf Layer werden nicht angezeigt. Web Tier 0
J Https Verknüpfung funktioniert nicht Web Tier 0
P JSF (Primefaces) SelectOneMenu Value auf Array wird nicht gesetzt Web Tier 0
K Vaadin Projekt Funkioniert nicht... Web Tier 1
M JSP PrimeFaces LayoutUnits <- breite lässt sich nicht erzwingen wenn 'center' Web Tier 0
R JSF selectOneListbox speichert Value nicht. Web Tier 1
W Tabelle wird nicht aktualisiert Web Tier 8
W JSF DataTable - Filter Funktion funktioniert nicht Web Tier 3
A JSF String wird nicht angezeigt Web Tier 2
S JSF CSS wird gefunden aber inhaltlich nicht angewendet Web Tier 2
FINF_AW_Alex EJB - property nicht vorhanden Web Tier 6
R JSF Bilder aus CSS Datei werden nicht angezeigt. Web Tier 2
F JSF Bean funktioniert nicht immer.. Web Tier 3
C JSF JSF Daten aus Klasse werden nicht angezeigt Web Tier 4
F JSF h:selectOneMenu Wert vorbelegen klappt nicht? Web Tier 2
R JSF ManagedProperty wird nicht erstellt Web Tier 1
H JSF jsf/sessionScoped Bean - Bilder (jpg) werden nicht richtig dargestellt Web Tier 1
L error-page mit ui:composite funktioniert nicht Web Tier 0
A Faces Context nicht mehr erreichbar nach Servlet Aufruf Web Tier 1
D JSF DataTable konvertiert Felder nicht Web Tier 1
G JSF Radio Button ValueChangeListener Wert wird nicht übernommen Web Tier 2
L JSF Composit Component mit ajax funktioniert nicht. Web Tier 4
M fileUploadListener geht nicht wenn Element zur Laufzeit gerendert wird Web Tier 2
Phash Link geht nicht Web Tier 4
S setInterval() will nicht Web Tier 2
A Aufruf eines Servlets auf einer JSP Seite funktioniert nicht Web Tier 10
B JSP Warum nicht ThreadSafe? Web Tier 21
G GWT 404 - Servlet nicht gefunden Web Tier 6
H Servlet lässt sich nicht deployen Web Tier 7
M rendered ruft eine Methode auf, andere aber nicht Web Tier 15
M System-Event in der faces-config.xml klappt nicht Web Tier 15
J JSF BigInteger nicht null sondern 0 Web Tier 3
nrg Java-Code in Taglib wird nicht richtig ausgeführt. Web Tier 7
F JSF CSS Verschachtelung wird nicht abgebildet Web Tier 2
F.S.WhiTeY Servlet Servlet wird nicht angesprochen Web Tier 3
D JSF a4j:support wird nicht gefunden Web Tier 2
D JSF cellpadding oder cellspacing funktioniert nicht Web Tier 4
xehpuk JSF 404 statt 500 bei nicht existenter JSF-Seite Web Tier 7
W JSF Login funktioniert nicht Web Tier 12
K Neue Entitäten werde nicht angezeigt Web Tier 4
F PrimeFaces p:selectOneMenu funktioniert nicht Web Tier 12
H JSP, Eclipse, Tomcat - Java Klasse wird nicht gefunden Web Tier 8
A JSF WebappClassloader.modified() aktualisiert Klassen nicht Web Tier 2
A JSF Rücksicht auf nicht eingeschaltetes JavaScript nehmen Web Tier 2
T JSF wird nicht ausgeführt Web Tier 4
R RadioButton nicht disabled Web Tier 5
J @Named Notation funktioniert nicht Web Tier 3
P JSF Netbeans 7.1.1 unterstützt JSF nicht? Web Tier 2
T RichFaces will nicht funktionieren :( Web Tier 2
L Applet kann unter WEB-INF/classes nicht gefunden werden Web Tier 10
H JSF ActionListener wird ausgeführt, aber ändert den Wert nicht. Web Tier 7
R JSF Beans werden nicht ausgeführt Web Tier 4
D richTable sort funktioniert nicht Web Tier 2
L JSF Beispiel wird nicht ausgeführt Web Tier 2
D Fehler: Cookies nicht gesetzt Web Tier 5
A Servlet File Upload funktioniert nur lokal auf Entwicklungsrechner, nicht in Tomcat Web Tier 5
Dit_ JSP Überprüfen ob Benutzer eingeloggt ist oder nicht | SessionSicherheit Web Tier 7
M JSF Button - Methode wird nicht aufgerufen Web Tier 4
L einfache JSF-Seite wird nicht angezeigt Web Tier 8
B JSF HtmlCommandButton --- Action wird nicht aufgerufen Web Tier 2
N JSF [Maven] Seam 2.2, Richfaces 3.3 - a4j wird nicht umgewandelt Web Tier 6
NoXiD JSF h:selectOneMenu - änderungen nicht übernommen Web Tier 14
C JSON-Antwort an Javascript geht nicht Web Tier 7
H Servlet Apache Geronimo: Servlet nicht erreichbar Web Tier 2
P JSF AJAX render wird nicht ausgeführt Web Tier 4
P SelectOneMenu liest Daten nicht ein Web Tier 7
E JSF JSF findet Property im ManagedBean nicht Web Tier 5
J JSF Richfaces Tabs, dynamisches include funktioniert nicht Web Tier 4
P Servlet wird nicht gefunden - HTTP Error 503 Web Tier 7
S JSF Primefaces Thema, Css wird geladen, nur die Bilder nicht, bzw Resource wird nicht aufgelöst Web Tier 5
D Fileupload in GWT funktioniert nicht Web Tier 10
B JSF Login authentication schaffe ich nicht Web Tier 2
P Eclipse zeigt Errors an, die auf Tomcat nicht auftreten Web Tier 2
F Property nicht gefunden (trotz getter und setter) Web Tier 3
B JSF Servlectexception: Verwalteter Bean "..bean" kann nicht erstellt werden Web Tier 2
C JSF JSF 2 - Anwendung lädt nicht Web Tier 4
S JSP lässt sich nicht ausführen Web Tier 2
I JSF Daten aus Formular werden nicht übernommen Web Tier 6
F Property in ManagedBean nicht gefunden? Web Tier 3
T JSF @ManagedBean nicht erkannt Web Tier 3

Ähnliche Java Themen

Neue Themen


Oben