Class ContextualCompositeValueExpression
- All Implemented Interfaces:
Serializable
This specialized ValueExpression
enables the evaluation of composite component expressions. Instances of
this expression will be created when
TagAttributeImpl.getValueExpression(jakarta.faces.view.facelets.FaceletContext, Class)
is invoked and the expression represents a composite component expression (i.e. #{cc.[properties]}).
It's important to note that these ValueExpression
s are context sensitive in that they leverage the
location in which they were referenced in order to push the proper composite component to the evaluation context
prior to evaluating the expression itself.
Using Page test.xhtml --------------------------------- <ez:comp1 greeting="Hello!" /> comp1.xhtml --------------------------------- <composite:interface> <composite:attribute name="greeting" type="java.lang.String" required="true" /> </composite:interface> <composite:implementation> <ez:nesting> <h:outputText value="#{cc.attrs.greetings}" /> </ez:nesting> </composite:implementation> nesting.xhtml --------------------------------- <composite:interface /> <composite:implementation> <composite:insertChildren> </composite:implementation>
In the above example, there will be two composite components available to the runtime: ez:comp1
and
ez:nesting
.
When <h:outputText value="#{cc.attrs.greeting}" />, prior to attempting to evaluate the expression, the
Location
object will be used to find the composite component that 'owns' the template in which the expression
was defined in by comparing the path of the Location with the name and library of the
Resource
instance associated with each composite component. If a matching composite
component is found, it will be made available to the EL by calling
CompositeComponentStackManager.push(jakarta.faces.component.UIComponent)
.
- See Also:
-
Constructor Summary
ConstructorDescriptionContextualCompositeValueExpression
(Location location, jakarta.el.ValueExpression originalVE) -
Method Summary
Methods inherited from class jakarta.el.ValueExpression
getValueReference
-
Constructor Details
-
ContextualCompositeValueExpression
public ContextualCompositeValueExpression() -
ContextualCompositeValueExpression
-
-
Method Details
-
getValue
- Specified by:
getValue
in classjakarta.el.ValueExpression
-
setValue
- Specified by:
setValue
in classjakarta.el.ValueExpression
-
isReadOnly
public boolean isReadOnly(jakarta.el.ELContext elContext) - Specified by:
isReadOnly
in classjakarta.el.ValueExpression
-
getType
- Specified by:
getType
in classjakarta.el.ValueExpression
-
getExpectedType
- Specified by:
getExpectedType
in classjakarta.el.ValueExpression
-
getExpressionString
- Specified by:
getExpressionString
in classjakarta.el.Expression
-
equals
- Specified by:
equals
in classjakarta.el.Expression
-
hashCode
public int hashCode()- Specified by:
hashCode
in classjakarta.el.Expression
-
isLiteralText
public boolean isLiteralText()- Specified by:
isLiteralText
in classjakarta.el.Expression
-
toString
-
getLocation
- Returns:
- the
Location
of thisValueExpression
-