I can use objects from my Java Beans within .jsp files by using the Expression Language (EL). Therefore I can get my value by typing ${foo.bar}. But I can also use #{foo.bar}.
Can anybody explain the difference or provide a link with meaningful information?
This is covered in the JSP 2.1 spec.
In Java EE, #{expr}
is used for deferred evaluation and ${expr}
for immediate evaluation. Deferred expressions (#{expr}
) expressions can only be used with tag attributes that accept them. This is a Java EE convention, but other domains could impose their own meaning (e.g. if you wanted to use EL in your own templates).
#{foo.bar}
syntax is from the JSF expression language. Some bright spark thought it would be a good idea to use a different syntax to JSP EL (i.e. ${foo.bar}
). I think some JSP containers are tolerant of this cockup, and let you use either one.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With