解决方案 »
- 事件触发时,怎样在任务栏显示一个小图标?
- 如何用利用StringUtil.dateToMillis方法获取系统当前时间
- 想用eclipse开发struts+spring+hibernate框架的项目,有没有资料手把手教的呢?参考书上的太笼统,很多细节都没涉及到,大家多指点。。。
- struts2的action挑转到一个jsp页面后 发现图片相对路径都不对了
- JSP 获取 checkbox 的值的问题
- 刚刚学习问两个问题!谢谢!
- 有谁知道jsp共支持哪几种脚本语言?比如javascript就是一种
- 新人求助
- 引用javaBean的奇怪问题
- 我在JBuilder7里建了个工程(JSP+JAVABEAN)最后编译后生成了一个*.WAR的文件,这个文件怎么用?(我用TOMCAT)
- 又是ext的问题 急…… 在线等
- 关于如何全部输出
上面代码数据是通过getBooks()方法获取的。数据存在ActionContext上下文中。并没有存入Session和Request。
Struts2的Action中,如果普通属性提供了对应的set和get方法的话,默认将内容存在ActionCOntext中,在页面都可以获取到。
你可以在页面增加<s:debug></s:debug>,然后点击可以查看ActionContext和其他web对象中的所有内容。
如果你不明白我帮你解释一下是怎么回事:
首先action被struts2的过滤器拦截以后,产生action的环境(OGNL Context), 接着产生action的代理,还会把action压入Ognl Context的根对象ValueStack的栈顶! 那么我们在jsp页面上可以通过OGNL访问这个valuestack以及OGNL Context中的对象以及属性.! 而struts2修改了OGNL的属性访问机制, 当你在页面上用<s:property value="attr">时,不再是访问根对象, 而是从ValueStack栈顶开始逐一扫描对象的属性,以找到的第一个为准.!
所以你页面上<s:iterator value="books" status="index">这个books就正是action的books属性!
我还可以告诉LZ一点的就是, 其实这个ValueStack已经在Struts2产生环境的时候被存到request作用域去了.!
struts2不需要存入Session和Request就能在页面拿到值,只需要将数据放入action中提供get set方法,然后再、页面就能通过<s:iterator 拿值了,这么理解可以么
你自己怎么理解得了就怎么理解.! 呵呵 东西是死人 人是活的喔