我试图了解Struts2中数据的路径,如何将数据放置在ValueStack上?我如何找出ValueStack中当前存在的对象?我可以从不同范围的应用程序,会话,请求,页面访问哪些其他数据?如何确定变量应具有的范围?
解决方法:
有很多问题.
值堆栈只是一种数据结构,是映射和堆栈的组合.命名对象(通过OGNL中的#标记访问)位于映射中(例如,请求范围),用于搜索属性/方法的对象位于堆栈中.
< s:debug>标记是找出值堆栈中最简单的方法.您还可以在JSP中使用“裸”数组表示法访问堆栈上的任意对象,例如“ [0]”是最上面的对象,“ [1]”是下一个对象,以此类推.现实生活.
您可以访问每个范围中的任何内容.
您自己的对象几乎应该始终通过操作本身或如果通过模型实现ModelDriven放置在值堆栈上.除此之外,它与任何其他Java EE应用程序相同-客户端会话持续时间所需的对象应在会话范围内,跨应用程序共享的对象应在应用程序范围内,等等.
值堆栈本身在请求范围内.