Announcement

Collapse
No announcement yet.

Methode eines Controllers mit Parametern aufrufen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Methode eines Controllers mit Parametern aufrufen

    Hallo
    Im Artikel "Java EE Fullstack" aus "Java EE 6 Die neue Leichtigkeit" wird auf den Seiten 20-21 gezeigt dass man die Variable aus <h:dataTable var=".."> als Parameter in einem EL Ausdruck verwenden kann.
    Ich habe das versucht in einer kleinen eigenen Anwendung nachzuvollzienen:
    Code:
    <h:dataTable value="#{betreuerController.allBetreuer}" var="betreuer">
    	<h:column>
    		<h:outputText value="#{betreuer.vorname}"></h:outputText>
    	</h:column>
    					
    	<h:column>
    		<h:commandLink value="Betreuungen" action="#{betreuerController.betreuung(betreuer)}"/>
    	</h:column>
    </h:dataTable>
    Auf JBoss 6 mit el-api-1.1.jar und el-impl-1.1.jar im lib Verzeichnis und
    Code:
    <context-param>
          <param-name>com.sun.faces.expressionFactory</param-name>
          <param-value>com.sun.el.ExpressionFactoryImpl</param-value>
    </context-param>
    in web.xml

    bekomme ich die Fehlermeldung
    Code:
    javax.servlet.ServletException: /betreuer.xhtml @37,94 action="#{betreuerController.betreuung(betreuer)}" Error Parsing: #{betreuerController.betreuung(betreuer)}
            javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)
            org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:67)
    Auf Glassfish 3.1 hab ich es auch nicht zum Laufen gebracht.

    Kann das Beispiel überhaupt funktionieren? Eine derartige Verwendung von EL Parametern hab ich sonst nirgens gesehen. Die meisten Beispiele zeigen nur Strings als Parameter (was aber ziemlich nutzlos wäre).

  • #2
    Sicherlich ist es möglich, eine Methode des Controllers aufzurufen und einen Parameter zu übergeben.

    Warum der Controller einmal

    betreuer

    und dann

    betreuerController

    heisst?
    Christian

    Comment


    • #3
      Von Eclipse generierte faces-context.xml

      war schuld.
      Ich hab nicht gemerkt dass Eclipse eigenmächtig eine faces-context.xml hinzugefügt hat. Darin war ein Resource Bundle deklariert.
      Warum allerdings der Fehler erst nach Hinzufügen des CommandLinks aufgetreten ist, ist mir weiterhin ein Rätsel

      Comment

      Working...
      X