2条回答 默认 最新
- Haisen大王 2015-11-28 04:51关注
突然明白了,EL表达式用处 是在JSP页面。。
这是在XML,properties文件。里,${} 表示的不是EL表达式,而是Ognl
——————————————————————————————————————————————————————
struts2提供三种方式通过ognl表达式来取ValueStack中的数据:#、%{}、${}
#和%{}需要放到struts2提供的标签里才生效。如:、
一、最常用的方式是:#
1.#能取request、session、application里的attribute,但需要加前缀。如:、。如果是取request范围的attribute,那么不需要加request前缀,加上反而取不到数据,ognl默认从request里取,如果没有取到并不会到session或application里取。如:
2.#能取request里的请求参数,但必须加parameters前缀,且取到的是一个数组,所以如果你要得到参数的第一项值,那么还要加下标。如:。这相当于调用request.getParameterValues("name")[0];
3.#加attr前缀能按request > session > application顺序获取attribute,这样当在request中取不到时,会自动向session里取,如果session里也取不到,会再向application里取。如果取到则返回,不再向上游历。如:
4.#能构造Map,如:
5.#能用于过滤和投影(projecting)集合,如:books.{?#this.price 以上第4、5项功能,我没有做过多介绍,因为目前为止这两项功能我使用并不多。
二、%{}的用途是在标签的属性为字符串类型时,计算OGNL表达式的值。这个功能目前还没有深刻体会,故不介绍。
三、${}有两个主要的用途。
1.用于在国际化资源文件中,引用OGNL表达式。
2.在Struts 2配置文件中,引用OGNL表达式。如 :
ListPhotos.action?albumId=${albumId}本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 Attention is all you need 的代码运行
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
- ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
- ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
- ¥30 关于<main>标签页面跳转的问题
- ¥80 部署运行web自动化项目
- ¥15 腾讯云如何建立同一个项目中物模型之间的联系
- ¥30 VMware 云桌面水印如何添加
- ¥15 用ns3仿真出5G核心网网元
- ¥15 matlab答疑 关于海上风电的爬坡事件检测