myfaces-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Leonardo Uribe (JIRA)" <...@myfaces.apache.org>
Subject [jira] [Created] (MYFACES-4099) Allow resolve #{cc} inside templates called from a composite component
Date Tue, 21 Feb 2017 21:54:44 GMT
Leonardo Uribe created MYFACES-4099:
---------------------------------------

             Summary: Allow resolve #{cc} inside templates called from a composite component
                 Key: MYFACES-4099
                 URL: https://issues.apache.org/jira/browse/MYFACES-4099
             Project: MyFaces Core
          Issue Type: Improvement
    Affects Versions: 2.2.12
            Reporter: Thomas Andraschko
            Assignee: Leonardo Uribe


It has been reported this scenario:

{code:xml}
<cc:implementation>
     <ui:include src="#{cc.page}"/>
</cc:implementation>
{code}

In the included page:

{code:xml}
<ui:composition ...>
     <test:anoterCompositeComponent locale="#{cc.someProperty}"/>
</ui:composition>
{code}

The problem right now is such kind of indirection has not been taken into account for #{cc}
EL resolution algorithm. It is supposed that any resolution of #{cc} happens inside the composite
component .xhtml and not indirectly through a template like is happening in the previous example.

This code leads to an StackOverflowException, because the algorithm cannot find the right
composite component and by default it takes the closest one.

In MyFaces it is possible to pass the values as parameters of ui:include, but the point is
it is better if we allow these example to work.

Please note this is not a bug. This looks like an improvement. The challenge here is expressions
using #{cc} outside a composite component xhtml are not cacheable, so we need to study if
this improvement can be done or not.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message