Gonçalo Manuel Cruchinho created MYFACES-3848:
-------------------------------------------------

             Summary: FunctionMapper not found when using a function inside 
value of f:setPropertyActionListener
                 Key: MYFACES-3848
                 URL: https://issues.apache.org/jira/browse/MYFACES-3848
             Project: MyFaces Core
          Issue Type: Bug
    Affects Versions: 2.1.14
            Reporter: Gonçalo Manuel Cruchinho


Using f:setPropertyActionListener inside a composite component with the value 
pointing to a function generates the following exception:

javax.el.ELException - Expression uses functions, but no FunctionMapper was 
provided.
at com.sun.el.lang.ExpressionBuilder.visit(ExpressionBuilder.java:208)

The following information can be used to reproduce the problem.

myfacesTest1.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<ui:composition 
        xmlns="http://www.w3.org/1999/xhtml";
        xmlns:f="http://java.sun.com/jsf/core";
        xmlns:h="http://java.sun.com/jsf/html";
        xmlns:ui="http://java.sun.com/jsf/facelets";
        xmlns:fn="http://java.sun.com/jsp/jstl/functions";
        xmlns:t="http://java.sun.com/jsf/composite/test";>
        
        <t:area>
                <f:facet name="body">
                        <h:commandButton>
                                <f:setPropertyActionListener 
target="#{myfacesTest1.property}" value="#{fn:substring('Hello World!', 6, 
12)}" />
                        </h:commandButton>
                </f:facet>
        </t:area>
</ui:composition>

MyfacesTest1.java

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name = "myfacesTest1")
@SessionScoped
public class MyfacesTest1 {

        private String property;

        public String getProperty() {
                return property;
        }
        public void setProperty(String property) {
                this.property = property;
        }

}

area.xhtml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml";   
      xmlns:composite="http://java.sun.com/jsf/composite";>
 
        <composite:interface>
                <composite:facet name="body" required="true" />
        </composite:interface>
    
        <composite:implementation>
                <composite:renderFacet name="body" />
        </composite:implementation>
</html>



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

Reply via email to