`

<s:property>的用法

阅读更多
1,访问Action值栈中的普通属性:
<s:property value="attrName"/>
2,访问Action值栈中的对象属性(要有get set方法):
<s:property value="obj.attrName"/>
<s:property value="obj1.obj2.attrName"/>
3,访问值栈中对象属性的方法
<s:property value="obj.methodName()"/>
4,访问值栈中action的普通方法:
<s:property value="methodName()"/>
5,访问静态方法:
<s:property value="@com.softeem.LoginAction@methodName()"/>
6,访问静态属性:
配置属性文件,允许ognl访问静态方法struts.ognl.allow...=true
<s:property value="@com.softeem.LoginAction@attrName"/>
7,访问Math类的静态方法:
<s:property value="@@min(9,7)"/>
8,访问普通类的构造方法:
<s:property value="new com.softeem.User(2)"/>
9,访问集合:
①list集合对象
<s:property value="listName"/>
②list集合中的某个元素
<s:property value="listName[1]"/>
③list中某个属性的集合
<s:property value="listName.{field}"/>
④list中某个属性集合的特定值
<s:property value="listName.{field}[0]"/>
⑤访问set
<s:property value="setName"/>
⑥访问set中某个元素
<s:property value="setName[0]"/>
⑦访问map
<s:property value="mapName"/>
⑧根据key访问Map中的元素
<s:property value="mapName.username"/>
<s:property value="mapName['username']"/>
<s:property value="mapName[/"username/"]"/>
⑨访问map中所有的key
<s:property value="mapName.keys"/>
10,访问map中所有的values
<s:property value="mapName.values"/>
11,访问map的大小
<s:property value="mapName.size()"/>
12,投影
<s:property value="listName.{?#this.age==1}"/>
<s:property value="listName.{^#this.age>1}"/>
<s:property value="listName.{$#this.age==1}"/>
<s:property value="listName.{$#this.age==1}.{age}==null"/>
[]:<s:property value="[0]"/>值栈中的对象


---------------------------------------
  访问action中传过来的对象:<s:property value="user"/>|${user }<br>
  访问action中传过来的对象中的属性:<s:property value="user.username"/>|${user.username }<br>
   访问action中传过来的对象属性类中的方法:<s:property value="user.getUsername()"/><br>
访问action中传过来的对象中的对象:<s:property value="user.group"/><br>
访问action中传过来的对象中的对象的属性:<s:property value="user.group.gname"/> |
<s:property value="user.group.getGname()"/><br>
访问action中的普通方法:<s:property value="getValue()"/><br>
访问其他类中过的静态方法:<s:property value="@com.softeem.pojos.User@printUser()"/><br>
   取到Math类中的方法:<s:property value="@@max(12,45)"/><br>
   访问User类的构造方法:<s:property value="new com.softeem.pojos.User()"/><br>
   访问list:<s:property value="users"/><br>
   获取list的长度:<s:property value="users.size()"/><br>
   取到list中第一个元素:<s:property value="users.get(0)"/>|<s:property value="users[1]"/><br>
取到list中username属性的集合:<s:property value="users.{username}"/><br>
根据key取到map中的元素:<s:property value="userMap.张三"/>|
<s:property value="userMap['三毛']"/><br>

⑨访问map中所有的key:<s:property value="userMap.keys"/><br>
10,访问map中所有的values:<s:property value="userMap.values"/><br>
11,访问map的大小:<s:property value="userMap.size()"/><br>

12,投影:<s:property value="users.{?#this.username=='张三'}.{password}"/><br>


13,取到list中满足条件的开头的一个元素的密码:<s:property value="users.{?#this.username='张三'}.{password}[0]"/><br>
14,取到list中满足条件的最后的一个元素的密码:<s:property value="users.{$#this.username='张三'}.{password}"/><br>
15,<s:property value="users.{$#this.username=='admin'}.{group}==null"/><br>
16,从栈顶开始取,一直取到指定的位置(0表示栈底):<s:property value="[1]"/>
   <s:debug></s:debug>
分享到:
评论
2 楼 w.tany 2015-03-10  
很多地方少个#  号
1 楼 Mr.He 2014-06-25  

相关推荐

    struts2 OGNL之&lt;s:property&gt;标签访问值栈(value stack)用法

    struts2 OGNL之&lt;s:property&gt;标签访问值栈(value stack)用法,希望能对大家有帮助

    Struts2标签库的所有

    (1) &lt;s:property&gt; (2) &lt;s:set&gt; (3) &lt;s:if&gt; 、&lt;s:elseif&gt;、&lt;s:else&gt; (4) &lt;s:iterator&gt; (5) &lt;s:include&gt; (6) &lt;s:form&gt;、&lt;s:hidden&gt; (7) &lt;s:textfield&gt;、&lt;s:password&gt;、&lt;s:checkbox&gt;、&lt;s:textarea&gt; (8) &lt;s:select&gt;、&lt;s:...

    Struts2标签库

    (1) &lt;s:property&gt; (2) &lt;s:set&gt; (3) &lt;s:if&gt; 、&lt;s:elseif&gt;、&lt;s:else&gt; (4) &lt;s:iterator&gt; (5) &lt;s:include&gt; (6) &lt;s:form&gt;、&lt;s:hidden&gt; (7) &lt;s:textfield&gt;、&lt;s:password&gt;、&lt;s:checkbox&gt;、&lt;s:textarea&gt; (8) &lt;s:select&gt;、&lt;s:...

    struts2 标签库 帮助文档

    1. &lt;s:generator separator="" val=""&gt;&lt;/s:generator&gt;----和&lt;s:iterator&gt;标签一起使用 H: 1. &lt;s:head/&gt;-----在&lt;head&gt;&lt;/head&gt;里使用,表示头文件结束 2. &lt;s:hidden&gt;&lt;/s:hidden&gt;-----隐藏值 I: 1. &lt;s:...

    Windows 脚本技术参考手册

    Windows 脚本技术参考手册(CHM)&lt;br&gt;目录:&lt;br&gt;Windows 脚本技术 &lt;br&gt;&lt;br&gt; Windows 脚本技术&lt;br&gt;&lt;br&gt; JScript&lt;br&gt; VBScript&lt;br&gt; 脚本运行时&lt;br&gt;&lt;br&gt; Dictionary 对象&lt;br&gt; FileSystemObject 对象&lt;br&gt; 脚本 Encoder&lt;br&gt;...

    struts2中#号的用法

    如果对象是当前页面的,则要使用# 1. &lt;s:bean id="locales" name="com.turorial.Locales" &gt;...&lt;/s:bean&gt; &lt;s:property value="#locales"/&gt;

    struts2讲义_吴峻申

    10.1 sitemesh基本使用方法 194 10.2 sitemesh高级应用 198 10.2.1 &lt;page:applyDecorator&gt;和&lt;decorator:getProperty&gt;标签的使用介绍 198 10.2.2 &lt;decorator:usePage&gt;、&lt;decorator:useHtmlPage&gt;和&lt;decorator:head&gt;...

    Visual C++ 编程资源大全(英文源码 其它)

    16.zip&lt;br&gt;Comment / Uncomment macros&lt;br&gt;命令/反命令宏(5KB)&lt;END&gt;&lt;br&gt;17,17.zip&lt;br&gt;Custom built files&lt;br&gt;自定义生成的文件(5KB)&lt;END&gt;&lt;br&gt;18,18.zip&lt;br&gt;Define Method&lt;br&gt;定义方法(5KB)&lt;END&gt;&lt;br&gt;19,19.zip&lt;br&gt;...

    freemarker总结

    其它的运行符可以作用于数字和日期,但不能作用于字符串,大部分的时候,使用gt等字母运算符代替&gt;会有更好的效果,因为 FreeMarker会把&gt;解释成FTL标签的结束字符,当然,也可以使用括号来避免这种情况,如:&lt;#if (x&gt;y)&gt; ...

    ibatis 开发指南(pdf)

    在&lt;br&gt;CLASSPATH 中新建log4j.properties 配置文件,内容如下:&lt;br&gt;log4j.rootLogger=DEBUG, stdout &lt;br&gt;log4j.appender.stdout=org.apache.log4j.ConsoleAppender &lt;br&gt;log4j.appender.stdout.layout=org.apache.log...

    网上购物系统

    &lt;p&gt;后台管理具体描述如下:&lt;/P&gt; &lt;p&gt;(1) 公告管理最新网上购物系统 &lt;/P&gt; &lt;p&gt;◆ 添加公告,包括公告标题和公告内容等;&lt;最新网上购物系统 /P&gt; &lt;p&gt;◆ 修改公告;&lt;/P&gt; &lt;p&gt;◆ 删除公告。&lt;最新网上购物系统 /P&gt; &lt;p&gt;(2) ...

    corejava的学习笔记

    -disableassertions[:&lt;packagename&gt;...|:&lt;classname&gt;] disable assertions -esa | -enablesystemassertions enable system assertions -dsa | -disablesystemassertions disable system assertions -agentlib:...

    hibernate 教程

    实现一个默认的构造方法(constructor)&lt;br&gt;4.1.3. 提供一个标识属性(identifier property)(可选) &lt;br&gt;4.1.4. 建议使用不是final的类 (可选)&lt;br&gt;4.2. 实现继承(Inheritance)&lt;br&gt;4.3. 实现equals()和hashCode...

    hibernate

    实现一个默认的构造方法(constructor)&lt;br&gt;4.1.3. 提供一个标识属性(identifier property)(可选) &lt;br&gt;4.1.4. 建议使用不是final的类 (可选)&lt;br&gt;4.2. 实现继承(Inheritance)&lt;br&gt;4.3. 实现equals()和hashCode...

    jQuery完全实例.rar

    &lt;p&gt;one&lt;/p&gt; &lt;div&gt;&lt;p&gt;two&lt;/p&gt;&lt;/div&gt; &lt;p&gt;three&lt;/p&gt; jQuery 代码: $("div &gt; p"); 结果: [ &lt;p&gt;two&lt;/p&gt; ] -------------------------------------------------------------------------------- 在文档的第一个表单...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    2.6.2 使用请求转发的动作标识&lt;jsp:forward&gt; 2.6.3 子动作标.iR&lt;jsp:param&gt;~使用 2.7 实战检验 2.7.1 输出九九乘法表 2.7.2 JSP中实现随机抽奖 2.8 疑难解惑 2.8.1 在JSP页面中编写中文之后不能保存 2.8.2 访问JSP...

    SpringMVC-Mybatis-Shiro-redis-master 权限集成缓存中实例

    &lt;constructor-arg value="v_v-s-baidu"/&gt; &lt;property name="httpOnly" value="true"/&gt; &lt;!--cookie的有效时间 --&gt; &lt;property name="maxAge" value="-1"/&gt; &lt;!-- 配置存储Session Cookie的domain为 一级...

    Struts2_OGNL 笔记

    OGNL是通常要结合Struts 2的标志一起使用,如&lt;s:property value="xx" /&gt;等。大家经常遇到的问题是#、%和$这三个符号的使用。下面我想通过例子讲述这个问题: 首先新建名为Struts2_OGNL的Web工程,配置开发环境。之前...

    jsp结合javabean的实践

    &lt;jsp:setProperty name="rd" property="path" value="d:/testsongyc.txt" /&gt; Id:是类的代号 property:是属性名 value:是属性的值 3、取值 &lt;jsp:getProperty id="localName" property="name" /&gt; Id:是类的...

    matlab提取文件要素代码-LangDocs:崇高的文本插件,显示某些语言类的方法和文档

    matlab提取文件要素代码...&lt;strong&gt;font-style&lt;/strong&gt; will display &lt;code&gt;italic&lt;/code&gt;, &lt;code&gt;normal&lt;/code&gt;, &lt;code&gt;oblique&lt;/code&gt; and a link to its documentation for extra information. &lt;br&gt;&lt;br&gt;&lt;stro

Global site tag (gtag.js) - Google Analytics