struts2如何获取数据
2015-09-15 00:43
459 查看
数据放在何处
在struts2里,所有的数据都放在ActionContext里。用《struts2技术内幕》里面的话来说,就是ActionContext从它的名字看就可以知道它是用来存储数据的(因为是上下文嘛)。如何访问数据
ActionContext里面的数据分2种,一种是根对象,一种当然是非根对象。1、根对象,访问的时候不需要加#。
示例,
<s:property value="对象.属性"/>
2、非根对象,访问的时候需要加#。
示例,
<table width="100%"> <s:iterator status="idz" value="listtask"> <!-- 说明:遍历集合,好比for(String s: 集合):所以,一个属性是集合,一个属性是当前的对象(只不过在strust2标签里,多了其他的用处,比如#对象.index/count)! --> <s:if test="listtask.get(#idz.index)[1] > 0"> <!-- 说明:1.XXXAction的对象属性(即ActionContext/OGNL上下文里的对象/数据):以深度引用的方式访问,即对象.属性 2.而非ActionContext/OGNL上下文里的对象,以#对象.属性的方式来访问:例如,set标签,设置的数据;迭代标签,集合的当前对象 --> <tr> <td colspan="2" bgcolor="#99BBE8"><b> 项目名称:<s:property value="listtask.get(#idz.index)[0]"/> </b></td> <!-- <td bgcolor="#99BBE8"><b style="color: green"> 已结单:<s:property value="listtask.get(#idz.index)[2]"/> </b></td> <td bgcolor="#99BBE8"><b style="color: red"> 未结单: <s:property value="listtask.get(#idz.index)[1]"/> </b> </td> --> <td bgcolor="#99BBE8"> </td> </tr> <tr> <td colspan="5"> <s:property escape="false" value="@com.XXX.projectmanagerweb.report.count.ReportCountAction@getTaskAllinfo(#session.user.username,listtask.get(#idz.index)[0])" /><!-- 说明:1.HttpServletRequest request/HttpSession session/ServletContext application,都在ActionContext/OGNL上下文里的对象,所以可以以#对象.属性.属性的方式访问 2. #对象.属性,这种方式访问是struts2标签里才可以使用;而刚才的那9个的jsp隐含对象,都可以在.jsp里的脚本代码里直接访问它和它的属性!--> </td> </tr> </s:if> </s:iterator> </table>
什么是根对象
1、只有ValueStack里面的数据才是根对象;Action的属性都属于ValueStack里的数据/对象。
2、其他的对象都不是根对象,
1)请求、会话、应用程序上下文都不是根对象。
2)迭代一个集合时的临时对象(即当前对象)也不是根对象,访问时也需要加#(见上面的例子)。
ValueStack里的所有的数据(或者说对象)
相关文章推荐
- 使用myeclipse“返回商品”步骤及代码(2015.09.15)
- java 内存泄露调试和解决
- spring boot web相关配置
- spring boot web相关配置
- spring boot web相关配置
- spring boot web相关配置
- java点滴记录1
- java可变参数Varargs
- Java RMI
- struts2入门Demo示例
- Java学习之路(二)02
- Java基础点滴记录
- JAVA数字大写金额转换
- java中hashmap获取list
- 整合hibernate4到spring4mvc框架
- Java初学笔记
- java学习:this与supper
- java学习:引用
- 关于java runtime.exec()
- java中调用外部exe文件