- The stack is just a stack of objects.
- Initially the stack contains the Action executed (this is why as you say value="foo" calls action.getFoo())
- New objects are placed onto the stack during the body of various tags (like <ww:iterator> or <ww:property> for example)
- Using the expression language you can navigate UP the stack (ie ../ to move up the stack, / to root an expression from the top of the stack)
- Using the expression language you can navigate DOWN the object graph from any point on the stack (ie / to move down the object's methods)
- The ValueStack is only valid during one request / response cycle.
How is that for a brief primer? Anyone have any other rules to add?