JSF - CommandButton keine Action

Status
Nicht offen für weitere Antworten.

jensa

Aktives Mitglied
HardwareBean.java
Code:
public String Save(){
		System.out.println("es wird gesaved...");
		return ("success");
	}

faces-config.xml
Code:
<managed-bean>
		<managed-bean-name>hardwareBean</managed-bean-name>
		<managed-bean-class>
			de.ks.tsys.jasshaue.verwaltung.beans.HardwareBean
		</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>

<navigation-rule>
  <from-view-id>/insertHardware.xhtml</from-view-id>
  <navigation-case>
    <from-outcome>success</from-outcome>
    <to-view-id>/listHardware.xhtml</to-view-id>
  </navigation-case>
</navigation-rule>

insertHardware.xhtml
Code:
<h:form>
<h:panelGrid columns="2" footerClass="subtitle"
  headerClass="subtitlebig" styleClass="medium"
  columnClasses="subtitle,medium">
  <f:facet name="header">
    <h:outputText value="Hardware Erfassung"/>
  </f:facet>
  <h:outputText value="#{msg.hardwareTyp}" />
  <h:selectOneMenu id="typ">
  <f:selectItems
   value="#{hardwareBean.typenItems}" />
</h:selectOneMenu>
  <h:outputText value="#{msg.hardwareBezeichnung}" />
  <h:inputText id="bezeichnung"/>
  <h:outputText value="#{msg.hardwareDetails}" />
  <h:inputTextarea id="details"
   rows="10" cols="30"
   value="Beschreibung des Artikels"/>
  <h:outputText value="#{msg.hardwarePreis}" />
  <h:inputText id="preis" value="#{hardwareBean.test}"/>
</h:panelGrid>
<h:commandLink value="Hardware speichern" id="submit" action="#{hardwareBean.Save}" />
</h:form>

Die Daten können aus der hardwareBean geholt werden, jedoch wird die Methode Save nicht beim klicken des CommandLinks ausgeführt.:/

woran kann es liegen?

Habe Apache Tomcat 6.0.x
& erhalte auch keine Fehlermeldungen beim klicken / starten des Projekts.

Gruß jensa
 
M

maki

Gast
Gibt es Validator/Converter Messages?

FacesTrace hilft mir bei JSF immer sehr, man übersieht nur allzuleicht eine fehler ausgabe auf dem INFO level...
 

jensa

Aktives Mitglied
halo maki,

wollte FaceTrace einbinden doch scheinbar ist FaceTrace nicht kompatibel mit meinen Versionen die ich benutze:/

SCHWERWIEGEND: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at com.prime.facestrace.phase.listener.TraceResourcePhaseListener.<init>(TraceResourcePhaseListener.java:40)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:902)
at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:541)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:438)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

leider finde ich auch nirgends was faceTrace für abhängigkeiten erfüllt bekommen muss:/



//edit ich hatte vergessen das ich die common-logging noch nicht im build path hatte:( sry

habe es nun eingefügt am ende wie es empfohlen wird:

und erhalte folgende Fehlermeldung:
XML-Verarbeitungsfehler: nicht wohlgeformt
Adresse: http://localhost:8080/verwaltung/insertHardware.xhtml
Zeile Nr. 118, Spalte 83:</div><script language="JavaScript1.2" src="traceResource.jsf?name=facestrace&type=js"></script>
----------------------------------------------------------------------------------^

einmal die komplette insertHardware.xhtml

evtl wenn einer etwas zum design / stil sagen könnte wäre ich auch sehr froh, bin noch in der Lernphase von JSF+ Faceletes & co

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:f="http://java.sun.com/jsf/core"
      xmlns:t="http://myfaces.apache.org/tomahawk"
      xmlns:ft="http://facestrace.sourceforge.net">
      <head>
      <title>Seitentitel</title>
      </head>
<body>
<ui:composition template="/defaultPage.xhtml">
<ui:define name="content">
<div class="content">
<h:form>
<h:panelGrid columns="2" footerClass="subtitle"
  headerClass="subtitlebig" styleClass="medium"
  columnClasses="subtitle,medium">
  <f:facet name="header">
    <h:outputText value="Hardware Erfassung"/>
  </f:facet>
  <h:outputText value="#{msg.hardwareTyp}" />
  <h:selectOneMenu id="typ">
  <f:selectItems
   value="#{hardwareBean.typenItems}" />
</h:selectOneMenu>
  <h:outputText value="#{msg.hardwareBezeichnung}" />
  <h:inputText id="bezeichnung"/>
  <h:outputText value="#{msg.hardwareDetails}" />
  <h:inputTextarea id="details"
   rows="10" cols="30"
   value="Beschreibung des Artikels"/>
  <h:outputText value="#{msg.hardwarePreis}" />
  <h:inputText id="preis" value="#{hardwareBean.test}"/>
</h:panelGrid>
<h:commandLink value="Hardware speichern" id="submit" action="#{hardwareBean.Save}" />
</h:form>
</div>
<ft:trace/>
</ui:define>

</ui:composition>

</body>
</html>
 

jensa

Aktives Mitglied
hallo, hatte oben bereits geändert,
aber trotzdem danke für den link werd ihn mir anschauen.

ist es denn empfehlenswert (ein muss) heutzutgae mit Maven 2 als Build-Management - Tool zu arbeiten?
Sollte man dort einsteigen oder kann man auch gut ohne Maven 2 leben?
 

jensa

Aktives Mitglied
okay evtl gute link tipps wo man einen guten einblick in Maven2 erhält?

http://sophisticated-it.de/index.php/2008/03/03/maven-in-eclipse-verwenden/

fand diesen Beitrag gut aber es konnte mich damals nicht 100% überzeugen aber wenn es empfehlenswert ist noch einmal tiefer alles nachschlagen wäre dann sinvoll.

@ topic:
bezgülich der fehlermeldung einen Lösungsvorschlag?
bzgl des XML-Verarbeitungsfehlers aufgrund der nicht wohlgeformtheit?
die Meldung kommt durch facelets.DEVELOPMENT = true in der web.xml ist die erweiterete Fehlerausgabe von facelets.
 

jensa

Aktives Mitglied
okay danke für den tipp aber irgendwie ist der download selbst als logged user nicht mögoich auf gurnd eines fehlers.

weiß jemand anderes wie ich das umgehen kann / fehlerfrei bekomme?

auch abgesehen vom facetrace problem mein urproblem, das ich nicht von der jsf-page mithilfe einer action eine Bean-Methode aufrufen kann:/

gruß jensa
 

jensa

Aktives Mitglied
habe jetzt noch einmal ein wenig herumgeforscht.

und weiß das die Bean exisitiert, da einerseits die Selecdaten geholt werden können & andererseits ein fehler entsteht sollte ich die Bean anders deklarieren.
Heißt die Kommunikationsrichtung Bean --> JSF Seite steht & funktioniert
die Kommunikation JSF --> Bean funktioniert nicht:(

habe es gestest mit gettern & settern ob ich werte von wo nach wo übergeben kann & dabei hatte sich das obige ergebnis herausgestellt.

hoffe ihr könnt mir helfen?
gruß jensa
 
M

maki

Gast
Stell mal dein Log Level auf INFO für die ganzen JSF geschichten, suche nach Validator und Converter Messages.
 

jensa

Aktives Mitglied
Hallo,
jetzt konnte ich mich wieder dem Problem widmen.
also
10:40:37,914 DEBUG TraceResourcePhaseListener:44 - View Root :/insertUser.xhtml
diese einzige Ausgabe erhalte ich habe das Loglevel auf Info gesetzt erhalt jedoch keine Info einträge bis auf das der Logger gestartet wird.

oder wie meintest du das?
bin noch nicht so fit im Umgang mit Log4j.

Ich lade einen Log4jConfigLoader beim Projektstart via web.xml
<servlet>
<servlet-name>log4j-init</servlet-name>
<servlet-class>de.ks.tsys.jasshaue.verwaltung.log.Log4jConfigLoader</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>

und lade in dem ConfigLoader einen neuen Log4j-Monitor und setze im Monitor das Level mittels setLevel() auf level.info.

Wie meintest du das genau?
weil so wie ich sagen täte fehlt mir der Zugriff auf das Faces Context oder?

Gruß jensa
 

jensa

Aktives Mitglied
hmm also bin immernoch dran hab weiter getestet

und einmal eine neue Bean & neue xhtml seite geschrieben und siehe da es funktioniert, warum funktioniert es da und aber nicht bei den oben geschriebenen fall?
 
G

Gast

Gast
Hast du diesmal vielleicht etwas anders gemacht als bei dem Fall oben?
 

jensa

Aktives Mitglied
Habe den Fehler gefunden nachdem ich nochmal gründlichst alles durchleuchtet hatte habe ich entdeckt das ich in meinem faces template damals aus bequemheit nen <h:form>um die kompl. Seite gemacht habe die Formularbereiche waren somit verschachtelt und sollten die Ursache gewesen sein.

Besten dank für eure Bemühungen & sorry das es ein dummer fehler von mir war:(
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S JSF CommandButton soll keine Request starten! Web Tier 2
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
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
L JSF: commandButton reagiert nicht Web Tier 10
R rich:datatabele : kennt Keine events ? Web Tier 1
R URL Rewrite hängt keine sessionid an Web Tier 6
C Tomcat wirft keine ViewExpiredException Web Tier 8
V JSF keine Ränder bei PanelGrid Web Tier 5
A Logback erzeugt keine Lockdateien Web Tier 3
S Tomcat 7, Struts, JPA baut keine Verbindung auf Web Tier 13
S Keine Verbindung zur MySQL-DB Web Tier 4
remus outputText keine 0 anzeigen Web Tier 3
V JSF oncomplete-Attribut nach action-Attribut auswerten Web Tier 3
M JSF Dialog nur nach erfolgreicher Action schließen Web Tier 4
B JSF HtmlCommandButton --- Action wird nicht aufgerufen Web Tier 2
H JSF JSF 2.0 (Primefaces) commandLinks mit action="mypage.xhtml" ohne die URL im Browser zu ändern Web Tier 8
M Struts 2 - "There is no Action mapped for namespace..." - globale Lösung? Web Tier 3
H Seiten-reload als Result einer Action Web Tier 3
ruutaiokwu action-attribut des jsf h:form-tag überschreiben Web Tier 7
7 Struts: bei action immer ein Result nötig? Web Tier 2
E Struts: Text in JSP aus Action heraus setzen Web Tier 4
2 Pro Action nur eine ActionForm? Web Tier 4
O struts - Gültigkeit einer Action an Session binden?! Web Tier 4
D MultiActionController von Spring ohne action und / aufrufen Web Tier 3
T Action mapping Frage (Struts) Web Tier 2
K [Struts2] autom. Action-Erkennung Web Tier 2
A Action-Methode soll Ausgabe auf der Responsepage steuern Web Tier 4

Ähnliche Java Themen

Neue Themen


Oben