- 动作类是多例的,每次动作访问,动作类都会实例化。所以是线程安全的。
- 与Struts1的区别是,struts1的动作类是单例的。
- 在同一个线程中获取的contextMap的对象完全一样, 即一个用户使用一个contextMap和ValueStack
contextMap中存值
valueStack中存值
取contextMap中的数据,需使用#
取contextMap里面ValueStack中对象的属性:直接写属性名
如果遇有对象属性重名,可以通过OGNL表达式,选择查找的起始位置
第一个username
存入new user 这里边有一个属性username
- 一共出现了两个username
-
特殊说明:当s:property不给定value属性时,默认取栈顶对象。