struts2标签 ongl取值
2014-01-14 10:56
381 查看
标签这东西不用就要被忘记,这两天改别人的项目,用到struts 标签,很是手生,我从新看了一下文档,总结一下
struts2提供三种方式通过ognl表达式来取ValueStack中的数据:#、%{}、${}
#和%{}需要放到struts2提供的标签里才生效。如:<s:property value="#name"/>、<s:property value="%{'hello struts2'}"/>
一、最常用的方式是:#
1.#能取request、session、application里的attribute,但需要加前缀。如:<s:property value="#session.name2"/>、<s:property value="#application.name3"/>。如果是取request范围的attribute,那么不需要加request前缀,加上反而取不到数据,ognl默认从request里取,如果没有取到并不会到session或application里取。如:<s:property value="#name"/>
2.#能取request里的请求参数,但必须加parameters前缀,且取到的是一个数组,所以如果你要得到参数的第一项值,那么还要加下标。如:<s:property value="#parameters.name[0]"/>。这相当于调用request.getParameterValues("name")[0];
3.#加attr前缀能按request > session > application顺序获取attribute,这样当在request中取不到时,会自动向session里取,如果session里也取不到,会再向application里取。如果取到则返回,不再向上游历。如:<s:property value="#attr.name"/>
4.#能构造Map,如:<s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" /><s:property value="#foobar['foo1']" />
5.#能用于过滤和投影(projecting)集合,如:books.{?#this.price<100}
struts2提供三种方式通过ognl表达式来取ValueStack中的数据:#、%{}、${}
#和%{}需要放到struts2提供的标签里才生效。如:<s:property value="#name"/>、<s:property value="%{'hello struts2'}"/>
一、最常用的方式是:#
1.#能取request、session、application里的attribute,但需要加前缀。如:<s:property value="#session.name2"/>、<s:property value="#application.name3"/>。如果是取request范围的attribute,那么不需要加request前缀,加上反而取不到数据,ognl默认从request里取,如果没有取到并不会到session或application里取。如:<s:property value="#name"/>
2.#能取request里的请求参数,但必须加parameters前缀,且取到的是一个数组,所以如果你要得到参数的第一项值,那么还要加下标。如:<s:property value="#parameters.name[0]"/>。这相当于调用request.getParameterValues("name")[0];
3.#加attr前缀能按request > session > application顺序获取attribute,这样当在request中取不到时,会自动向session里取,如果session里也取不到,会再向application里取。如果取到则返回,不再向上游历。如:<s:property value="#attr.name"/>
4.#能构造Map,如:<s:set name="foobar" value="#{'foo1':'bar1', 'foo2':'bar2'}" /><s:property value="#foobar['foo1']" />
5.#能用于过滤和投影(projecting)集合,如:books.{?#this.price<100}
相关文章推荐
- strut2文件上传,动态显示图片
- java 反射
- Spring : 事务配置的五种方式
- spring 静态工厂 &实例工厂实例方法 & 实现factorybean接口
- Note of learning Inside the Java Virtual Machine Chapter Five
- Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/Maps
- Java开发工具及组件应用视频教程
- 02_输入与输出I/O(基础篇)
- java List数据转换为json类型数据
- Java正则入门
- java中抽象类和接口的区别
- Java开发实用工具及组件应用视频教程
- java基本教程之线程让步 java多线程教程
- Java事件与本地时间相差8小时解决
- Java书籍Top 10
- java遍历树
- Eclipse报错:java.lang.ClassNotFoundException: ContextLoaderListener
- java实现多线程同步
- Eclipse安装SVN插件
- java基本教程之java线程等待与java唤醒线程 java多线程教程