JSF Unified-EL- Methode mit Parameterübergabe

Kirro

Mitglied
Hallo,

habe im Online buch:irian.at folgendes gelesen:
Code:
<h:commandLink value="Delete"
    action="#{customerBean.deleteAddress(address)}"/>

Java:
public String deleteAddress(Address address) {
  // Adresse löschen und Zeichenkette für Navigation zurückgeben
}

Naja ich wollte genau dieses nun nutzen jedoch funktioniert das bei mir nicht so!
Die IDE meckert schon vorher : Syntax error in EL (ist nur ne Warnung, also kann den Server starten aber auf der Seite kommt dann ein Parse Error deswegen)

Nun meine Frage wie funktioniert das? muss ich was besonderes einstellen?

gruß
kirro

PS: Wenn ich mir die Beisiele runterlade von dem Online-buch dann funktionieren die methoden mit parameter übergabe!?! Denke also das liegt an mein projekt-einstellungen:

Benutze eigentlich nur ICEFaces zusätzlich! Liegt es daran?

Danke im Voraus!
 

JayGabriel

Aktives Mitglied
Hallo, Kirro.

In den Beispielen, was du an Code gepostet hast, seh ich keinen direkten Fehler. Wär nur schön, wenn du auch die Fehlermeldung geschrieben hättest ;) Das würde einem die Suche nach dem Fehler erleichtern.

So kann ich nur raten: Womöglich weiß deine jsp beim Aufruf der Methode nicht, welchen Wert "address" hat? Wo gibst du diesen Wert in deiner View an?

mfg
Jay
 

Kirro

Mitglied
Also der Code war direkt jetzt vom buch:

mein code:

[XML] <h:form>
<h:inputText name="username" id="username" value="#{user.name}" />
<h:commandButton value="Anmelden" action="#{lobby.login(user)}" />
</h:form>[/XML]

Hier unterstreicht die IDE direkt user im action-attribut mit => Syntax Error in EL (mehr nicht aber nur Warning kann also starten!

Code:
Java:
	public String login(User user) {
		this.users.add(user);

		return "chat.xhtml";
	}

wenn ich nun tomcat starten:
kommt folgendes:
An Error Occurred:
/start.xhtml @44,69 action="#{lobby.login(user)}" Error Parsing: #{lobby.login(user)}

im Stack Trace folgendes:
Code:
javax.faces.view.facelets.TagAttributeException: /start.xhtml @44,69 action="#{lobby.login(user)}" Error Parsing: #{lobby.login(user)}
	at com.sun.faces.facelets.tag.TagAttributeImpl.getMethodExpression(TagAttributeImpl.java:232)
	at com.sun.faces.facelets.tag.jsf.ActionSourceRule$ActionMapper2.applyMetadata(ActionSourceRule.java:104)
	at com.sun.faces.facelets.tag.MetadataImpl.applyMetadata(MetadataImpl.java:81)
	at javax.faces.view.facelets.MetaTagHandler.setAttributes(MetaTagHandler.java:129)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.setAttributes(DelegatingMetaTagHandler.java:102)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.doNewComponentActions(ComponentTagHandlerDelegateImpl.java:402)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:159)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137)
	at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:188)
	at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
	at com.sun.faces.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:93)
	at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98)
	at com.sun.faces.facelets.compiler.EncodingHandler.apply(EncodingHandler.java:86)
	at com.sun.faces.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:152)
	at com.sun.faces.application.view.FaceletViewHandlingStrategy.buildView(FaceletViewHandlingStrategy.java:769)
	at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:100)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:709)
	at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:680)
	at org.apache.jsp.index_jsp._jspService(index_jsp.java:58)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:662)
Caused by: javax.el.ELException: Error Parsing: #{lobby.login(user)}
	at org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:147)
	at org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:172)
	at org.apache.el.lang.ExpressionBuilder.createMethodExpression(ExpressionBuilder.java:223)
	at org.apache.el.ExpressionFactoryImpl.createMethodExpression(ExpressionFactoryImpl.java:57)
	at com.sun.faces.facelets.tag.TagAttributeImpl.getMethodExpression(TagAttributeImpl.java:222)
	... 52 more
Caused by: org.apache.el.parser.ParseException: Encountered " "(" "( "" at line 1, column 14.
Was expecting one of:
    "}" ...
    "." ...
    "[" ...
    ">" ...
    "gt" ...
    "<" ...
    "lt" ...
    ">=" ...
    "ge" ...
    "<=" ...
    "le" ...
    "==" ...
    "eq" ...
    "!=" ...
    "ne" ...
    "&&" ...
    "and" ...
    "||" ...
    "or" ...
    "*" ...
    "+" ...
    "-" ...
    "/" ...
    "div" ...
    "%" ...
    "mod" ...
    
	at org.apache.el.parser.ELParser.generateParseException(ELParser.java:2142)
	at org.apache.el.parser.ELParser.jj_consume_token(ELParser.java:2024)
	at org.apache.el.parser.ELParser.DeferredExpression(ELParser.java:113)
	at org.apache.el.parser.ELParser.CompositeExpression(ELParser.java:40)
	at org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:115)
	... 56 more

ich hoffe ihr könnt mir helfen

Danke im voraus
 

Kirro

Mitglied
ich habe jetzt die jboss el 2.0.1 eingefügt

das funktioniert jetzt auch, jedoch meckert die IDE (Eclipse) immer noch, finde ich bisschen unschön... kann man das irgendwie ändern?
 

sence

Bekanntes Mitglied
morgen, hast du es auch in deiner WEB.xml abgeändert?
<!-- Überschreiben der EL Expression Language im ExpressionFactory mit JBoss EL 2.x -->
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>org.jboss.el.ExpressionFactoryImpl</param-value>
</context-param>

Das Ding hat mich 2 Tage suchen gekostet, war mal am selben Punkt wie du jetzt :)
 

Kirro

Mitglied
ja genau

EDIT: also nur warning ;) ich kann es kompilieren und es startet auch und funktioniert
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Button klick soll Java methode aufrufen Web Tier 2
M JSF JSF: Methode bei versteckt aufrufen & Parameter übergeben Web Tier 6
R get-methode der Managed-Bean wird immer 3 mal ausgeführt Web Tier 4
Joew0815 Spring Handle All Requests Methode Web Tier 1
M rendered ruft eine Methode auf, andere aber nicht Web Tier 15
V Mittels JavaScript Methode aufrufen Web Tier 23
M JSF Button - Methode wird nicht aufgerufen Web Tier 4
F NullPointerException auf validator methode Teil2? Web Tier 2
B JSF NullPointerException auf validator methode Web Tier 7
P Mit EL Parameter an Methode übergeben Web Tier 5
I Im PhaseListener Service Methode aufrufen Web Tier 21
J JSF Datatable bestimmte Methode Web Tier 4
I Automatische Weiterleitung JSF mit Aufruf einer Methode Web Tier 2
M JSF: Bei Seitenaufruf eine Methode starten Web Tier 15
H JSF - Methode kann nicht aufgerufen werden Web Tier 5
M Body onUnload Java Methode aufrufen Web Tier 13
K bean methode von jslt aufrufen Web Tier 7
D <html:select> bzw. <html:option> - Methode auslösen ? Web Tier 2
D [JSF] Lifecycle Methode wird mehrfach aufgerufen Web Tier 4
F Problem mit der Methode request.getRemotePort() Web Tier 2
D Methode bei Server Startup ausführen Web Tier 2
E Methode einer Bean aus anderer Bean aufrufen Web Tier 10
S JSF: Methode mit Parametern aufrufen Web Tier 7
J Fehler Tomcat/JSP findet Methode nich Web Tier 3
G Mit JSTL Rückgabe von Bean Methode ausgeben Web Tier 3
G in validate methode auf form objekte zugreifen Web Tier 3
A Action-Methode soll Ausgabe auf der Responsepage steuern Web Tier 4
F Beim Aufruf von einer JSF Seite eine Methode ausführen Web Tier 9
A Parameterübergabe an Servlet und Aufruf von Servlets per Java Code Web Tier 7
P Problem der Parameterübergabe aus Iframe Web Tier 15
M JSF: Parameterübergabe an Properties-Datei aus JSF-Tag heraus? Web Tier 4
M CustomTags mit Body und Parameterübergabe Web Tier 2
H problem bei Parameterübergabe mit beans Web Tier 3
G JSF Parameterübergabe Web Tier 3
M Parameterübergabe an die TagKlasse Web Tier 4

Ähnliche Java Themen

Neue Themen


Oben