The first variable is either an implicit object or an attribute, and the thing to the right of the dot is either a map key (if the first variable is a map) or a bean property if the first variable is an attribute that’s a JavaBean.
If the expression has a variable followed by a dot, the left-hand variable MUST be a Map or a bean.
When the variable is on the left side of the dot, it’s either a Map (something with keys) or a bean (something with properties).
This is true regardless of whether the variable is an implicit object or an attribute.
The thing to the right of the dot MUST be a Map key or a bean property.
The pageContext implicit object is a bean—it has getter methods. All other implicit objects are Maps.
If the object is a bean but the named property doesn’t exist, then an exception is thrown.
And the thing on the right must follow normal Java naming rules for identifiers.
${person.name}
* Must start with a letter, _, or $.
* After the first character, you can include numbers.
* Can’t be a Java keyword.