1

I've the below tagfile:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:rich="http://richfaces.org/rich"
                xmlns:a4j="http://richfaces.org/a4j"
>
    ...
    <h:inputText ...>
        <a4j:ajax listener="#{ajaxListener}" />                  
    </h:inputText>
    ...
</ui:composition>

whose ajaxListener attribute is configured as:

 <attribute>
   <name>ajaxListener</name>
   <required>false</required>
   <type>javax.el.MethodExpression</type>
   <method-signature>void listner(javax.faces.event.AjaxBehaviorEvent)</method-signature>
 </attribute>

When the tag is used as:

<wish:inputText id="nameEn"                   
                value="#customerAddBacking.customerBean.nameEn}" 
                label="#{lbs.CUSTOMER_NAME_EN}2"                    
                ajaxEnabled="true"
                ajaxListener="#{customerAddBacking.enNameChangeListener}" /> 

the following exception is thrown:

javax.el.PropertyNotFoundException: The class 'com.wish.nags.web.view.client.setting.customer.CustomerAddBacking' does not have the property 'enNameChangeListener'.

How is this caused and how can I solve it?

It works if I use a composite component with <cc:attribute method-signature>, however I can't use a composite component to avoid the problem as described here: a composite component inside panelgrid is not 'expanded'

Community
  • 1
  • 1
wish79
  • 101
  • 1
  • 3

0 Answers0