The "#" character is used when an action context variable is created, for example by an <s:set>, <s:url>, or similar tag. No "#" character is needed when referencing objects on the stack itself. I think of the action context in two ways: the value stack, and another scope (like session or request scopes, but different).
When accessing the action context "scoped" variables we need to use "#", when accessing things on the stack, we don't.
Joined: Feb 28, 2009
Thanks for excellent answer.
subject: Struts2 Query using OGNL for displaying data