So we all know that #{someBean.value}
will try and get the content of some property on someBean
called value
. It will look for g
Basically what you've stated is all there is to it. EL expects the object to follow regular java bean standards. These 2 should help:
It's authoritatively documented in both the JavaBeans Spec and EL Specification.
To take the boolean
property as an example, it's described in chapter 8.3.2 of JavaBeans spec:
8.3.2 Boolean properties
In addition, for boolean properties, we allow a getter method to match the pattern:
public boolean is<PropertyName>()
;This “is<PropertyName>” method may be provided instead of a “get<PropertyName>” method, or it may be provided in addition to a “get<PropertyName>” method.
In either case, if the “is<PropertyName>” method is present for a boolean property then we will use the “is<PropertyName>” method to read the property value.
An example boolean property might be:
public boolean isMarsupial(); public void setMarsupial(boolean m);
So, #{bean.marsupial}
expects exactly the above getter/setter pair.
And in chapter 1.18.5 of EL spec:
1.18.5 Coerce A to Boolean
- If
A
isnull
or""
, returnfalse
- Otherwise, if
A
is aBoolean
, returnA
- Otherwise, if
A
is aString
, andBoolean.valueOf(A)
does not throw an exception, return it