博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2中OGNL的具体用法
阅读量:7070 次
发布时间:2019-06-28

本文共 1397 字,大约阅读时间需要 4 分钟。

hot3.png

1.“#”用于声明OGNL表达式,有3种用途:

一.能够访问OGNL的上下文和ActionContext资源,相当于ActionContext.getContext();

  1.#parameters,代表request.getParameterValues("id");返回String[]类型,一般使用#parameters.id[i];

  2.#request,代表request.getAttribute("account");相当于#request.account;

  3.#session,代表session.getAttribute("account");相当于#session.account;

  4.#application,代表application.getAttribute("account");相当于#application.account;

  5.#attr,代表request,session,application里面所有的属性,#attr.account相当于EL表达式中的${account},依次查看request,session,application,找到为止.

 

二.用于过滤或筛选集合,例如:books.{?#this.price<20};

 

三.构造Map,如#{‘foo1’:‘bar1’,‘foo2’:‘bar2’};

 

例子:

maganize是javabean类,里面有属性{String name,int price};

Action中有List<maganize> maganizeList = new ArrayList(){····};

<s:property value=“maganizeList.{?#this.price>18}.size()” />

<s:property value=“maganizeList.{?#this.name.contains(‘XXX’)}.size()” />

<s:iterator value=“maganizeList.{?#this.price>18}”/>

      <s:property value=“name”/><s:property value=“price”/>

</s:iterator>

 

2.“%”显示声明OGNL表达式:用于某些标签中既能够接受字符,又能够接受OGNL表达式:

例如:<s:label label="#request.account" /> 会直接显示:#request.account出来

如果是:<s:label label="%{#request.account}" />就会是显示出account的值

 

3.“$”使用在配置文件中:AAA.xml都行

例如在struts.xml中:

<action name="" >

  <result>·······?id=${id}</result>

</action>

 

额外的增加一点<s:if>的用法:

<s:if test="#parameters.name[0]==‘yao’">···</s:if>

<s:if test="name==‘yao’">···</s:if> 此处的name必须是action中的一个属性...

转载于:https://my.oschina.net/u/185335/blog/50552

你可能感兴趣的文章
使用Google Analytics跟踪下载等事件
查看>>
Netty服务器连接池管理设计思路
查看>>
5.多个Storyboard切换
查看>>
Vue CLI 3开发中屏蔽烦人的EsLint错误
查看>>
批量分发管理三种解决方案案例视频分享
查看>>
Scrum方法论(四)
查看>>
处理windows 2008x64平台exchange 2010 sp1打完系统补丁后,控制台无法打开
查看>>
Windows Server 2016-命令行Ntdsutil迁移FSMO角色
查看>>
征服Perl——基础知识——里程碑M4
查看>>
linux svn服务器搭建、客户端操作、备份与恢复
查看>>
报表服务入门(实验4)创建共享数据源
查看>>
程序员娶妻子的经典准则
查看>>
Synology NAS 存储系统多路径连接Vmware ESXi 6.5
查看>>
K8s 原理架构介绍(一)
查看>>
微软正式发布OneDrive 提供100GB免费空间
查看>>
移动端web无刷新上传图片【兼容安卓IOS】
查看>>
MySQL-MongoDB开源监控利器PMM增加slack报警功能
查看>>
PowerShell 查找删除Windows补丁文件
查看>>
Powershell 创建文件,安全组和DFS链接
查看>>
在Linux系统中安装Subversion版本控制
查看>>