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!
 
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
 
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
 
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?
 
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 🙂
 
ja genau

EDIT: also nur warning 😉 ich kann es kompilieren und es startet auch und funktioniert
 
Zuletzt bearbeitet:

Zurück
Oben