On 7/28/06, John Conner <[EMAIL PROTECTED]> wrote:
I have just started with JSF and have been playing around with el
expressions in the rendered property of components.  Is there someplace
that explains what is valid/invalid as an expression for this property?

The JSF 1.1 spec (JSR-127) under 5.1.2 "Value Binding Expression
Syntax", which starts off by saying

"The syntax of a value binding expression is identical to the syntax
of an expression
language expression defined in the JavaServer Pages Specification (version 2.0),
sections 2.3 through 2.9, with the following exceptions..."


Specifically is it possible to:
1. Use an and condition like
      rendered="#{mb.propertyBoolean1 && mb.propertyBoolean2}"

Yes, although I'd recommend using "and" instead of "&&"  (I don't
remember if it's & or && in any case, but this avoids that issue as
well as escaping issues).


2. Is it possible to compare to an enum value
      rendered="#{mb.enumValue == a.b.c.EnumClass.ENUM_VALUE}"

I don't think so since variables must be managed beans or one of the
other predefined values.   However, you could write your own resolver
that also checked for enumeration classes.

3. Use a complex call like
      rendered="#{mb.someFunction(mb2.value1)}"

Only if you're using Facelets or another viewhandler that lets you
define functions.

For JSF 1.2, everything is the JSP 2.0 unified EL.   I think this is
also what Facelets uses underneath as an espression language (I have
el-api.jar and el-ri.jar files from glassfish to make it work).

In any case, everything about the expression language is configurable.
 A long while back, someone posted a replacement EL that was
javascript.

Reply via email to