[ 
https://issues.apache.org/jira/browse/MYFACES-3219?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Leonardo Uribe resolved MYFACES-3219.
-------------------------------------

       Resolution: Fixed
    Fix Version/s: 2.1.2
                   2.0.8

> EL inline expressions does not resolve cc as expected
> -----------------------------------------------------
>
>                 Key: MYFACES-3219
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3219
>             Project: MyFaces Core
>          Issue Type: Bug
>          Components: JSR-314
>            Reporter: Leonardo Uribe
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.8, 2.1.2
>
>
> Suppose this example:
> <testComposite:compositeRefVE value="success">
> </testComposite:compositeRefVE>
> compositeRefVE.xhtml
> <composite:interface>
>     <composite:attribute name="value"/>
> </composite:interface>
> <composite:implementation>
>     <testComposite:compositeRefVE2>
>        <p>Some text: <h:outputText value="#{cc.attrs.value}"/> there.</p>
>     </testComposite:compositeRefVE2>
> </composite:implementation>
> compositeRefVE2.xhtml
> <composite:interface>
> </composite:interface>
> <composite:implementation>
>     <composite:insertChildren/>    
> </composite:implementation>
> It works, everything is ok in this case. The final output is "Some text: 
> success there.". But now change compositeRefVE.xhtml to this:
> <composite:interface>
>     <composite:attribute name="value"/>
> </composite:interface>
> <composite:implementation>
>     <testComposite:compositeRefVE2>
>        <p>Some text: #{cc.attrs.value} there.</p>
>     </testComposite:compositeRefVE2>
> </composite:implementation>
> It should do the same, but it does not work, because #{cc.attrs.value} is 
> resolved to null. Why? There are two reasons:
> 1. When the markup is executed, the current component on the stack is the 
> inner one (compositeRefVE2), and it should be the outer one. This means the 
> inner component must be pop and push. We didn't notice the effect in the 
> other case, because Location object is used there to detect the current 
> composite component.
> 2. If #{cc} is used, the expression should be wrapped using 
> LocationValueExpression, like on TagAttributeImpl
> Additionally, I saw we are not caching inline EL expressions, so this is a 
> good oportunity to do it.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to