2 Replies Latest reply on Sep 12, 2007 1:35 PM by Dustin Norlander

    Parameters in EL method binding

    John Smith Newbie

      Using facelets, jboss 1.2.1GA, jboss4.2.1, ajax4jsf
      From the seam docs:

      Seam provides an enhancement to the EL that allows parameters to be included in a method expression itself. This applies to any Seam method expression, including any JSF method binding, for example:

      <s:commandButton action="#{hotelBooking.bookHotel(hotel)}" value="Book Hotel"/>

      To use this feature in Facelets, you will need to declare a special view handler, SeamFaceletViewHandler in faces-config.xml.

      <faces-config>

      <view-handler>org.jboss.seam.ui.facelet.SeamFaceletViewHandler</view-handler>

      </faces-config>

      but as I'm using AJAX4JSF this declaration is moved to web.xml


      <context-param>
      <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name>
      <param-value>
      org.jboss.seam.ui.facelet.SeamFaceletViewHandler
      </param-value>
      </context-param>


      But in my xhtml (using faclets), if I even hint at using parameters such as :
      <f:selectItems value="#{roleSelectItemListService.allRoles()}"/>

      it throws

      Caused by: javax.el.ELException: Error Parsing: #{roleSelectItemListService.allRoles()}
      at org.apache.el.lang.ExpressionBuilder.createNodeInternal(ExpressionBuilder.java:125)
      at org.apache.el.lang.ExpressionBuilder.build(ExpressionBuilder.java:146)
      at org.apache.el.lang.ExpressionBuilder.createValueExpression(ExpressionBuilder.java:190)
      at org.apache.el.ExpressionFactoryImpl.createValueExpression(ExpressionFactoryImpl.java:68)
      at org.jboss.seam.ui.facelet.SeamExpressionFactory.createValueExpression(SeamExpressionFactory.java:107)
      at com.sun.facelets.tag.TagAttribute.getValueExpression(TagAttribute.java:256)
      ... 75 more
      Caused by: org.apache.el.parser.ParseException: Encountered "(" at line 1, column 37.


      If I use

      <f:selectItems value="#{roleSelectItemListService.allRoles}"/>

      it works fine,

      has anybody else come across this

      thanks in advance