`

OGNL表达式<s:property>的用法 (转帖)

阅读更多

帖子地址:http://blog.163.com/yang_live/blog/static/215176012201302441158505/

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>

 

分享到:
评论

相关推荐

    struts2 标签使用

    接下来,我们将通过几个具体的示例来详细了解 `&lt;s:if&gt;` 标签的使用方法。 ##### 示例一:简单的条件判断 ```html &lt;s:set name="country" value="China" /&gt; &lt;s:if test="%{#country == 'China'}"&gt; This is China! ...

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

    &lt;s:property value="ognl表达式" /&gt; ``` 其中,`ognl表达式`可以是一个对象名、属性名或完整的OGNL表达式。 3. **访问Action属性**: 如果你想显示Action类的一个属性,可以直接使用属性名,例如: ```jsp &lt;s...

    Struts2中使用标签实现组合查询和带分页的例子

    在Struts2中,这可以通过在Action类中定义相应的查询参数并使用OGNL表达式来实现。例如,Action类可能有如下的属性: ```java private String username; private int age; // getters and setters ``` 然后在JSP...

    struts2 OGNL表达式使用

    4. 访问值栈中对象的普通方法:&lt;s:property value="cat.friend.say().length()"/&gt; 5. 访问值栈中action的普通方法:&lt;s:property value="execute()"/&gt; 访问静态方法和属性 6. 访问静态方法:&lt;s:property value="@...

    struts2 OGNL 表达式及各种标签的使用

    - 在JSP页面上,使用OGNL标签显示和处理数据,如`&lt;s:if test="%{user.isAdmin}"&gt;管理员界面&lt;/s:if&gt;`。 通过理解并熟练运用OGNL表达式和相关标签,开发者可以更高效地构建Struts2应用程序,实现数据的灵活绑定和...

    Strust2的if-else <tr></tr>用法

    同时,可以使用`&lt;s:choose&gt;`, `&lt;s:when&gt;`, 和 `&lt;s:otherwise&gt;`标签来创建类似于switch-case的结构: ```jsp &lt;s:choose&gt; &lt;s:when test="%{status == 'active'}"&gt; &lt;!-- 活动状态的行内容 --&gt; &lt;/s:when&gt; &lt;s:when ...

    ognl表达式 ognl表达式

    &lt;s:property value="key"/&gt;=&lt;s:property value="value"/&gt;&lt;br&gt; &lt;/s:iterator&gt; ``` 这段代码展示了如何使用OGNL遍历一个Map,并打印出键值对。 通过上述介绍可以看出,OGNL作为一种强大的表达式语言,在Struts2...

    ognl表达式案例

    例如,`&lt;s:property&gt;`标签可以用来输出对象的属性值,其value属性可以是OGNL表达式,如`&lt;s:property value="user.name" /&gt;`。 标签库还包括其他有用的标签,如`&lt;s:set&gt;`用于设置变量,`&lt;s:if&gt;`和`&lt;s:else&gt;`进行条件...

    ognl表达式的用法

    - 在第29行、31行和33行,`&lt;s:property&gt;`标签使用OGNL表达式`#request.req`、`#session.sess`和`#application.app`分别访问了request、session和application范围内的属性值。这里的`#`符号标识了表达式的开始,`...

    OGNL学习笔记,包含struts2中ognl的各种用法

    在示例代码中,`&lt;s:property&gt;`标签使用OGNL表达式`#request.req`、`#session.sess`和`#application.app`分别获取了Request、Session和Application范围内的属性值。这展示了OGNL如何灵活地访问不同级别的数据。 其次...

    `Strtus2 OGNL表达式的结合

    `&lt;s:property&gt;`用于在页面上输出ValueStack或ActionContext中的数据,可以指定`value`属性执行OGNL表达式来获取数据。而`&lt;s:set&gt;`则用于创建变量并保存到特定范围,如`&lt;s:set var="myVar" value="#parameters.score...

    OGNL访问OGNL上下文和Action上下文Struts2rarfdsafsdfasdfas

    1. `&lt;s:property&gt;`:这个标签用于输出对象的属性值,它内部可以包含一个OGNL表达式。例如,`&lt;s:property value="user.name" /&gt;`将输出User对象的name属性。 2. `&lt;s:set&gt;`:这个标签用于设置变量,可以将值存储到...

    精通struts2的ognl表达式

    2. **条件判断与循环**:利用OGNL,可以在Struts2的标签库中实现复杂的逻辑处理,比如`&lt;s:if test="someCondition"&gt;...&lt;/s:if&gt;`这样的条件判断语句。 3. **动态方法调用**:OGNL支持静态方法的调用,这使得开发者...

    ognl教程代码

    - **请求作用域** (`#request`): 在 JSP 页面或 Struts2 动作中,可以直接使用 `&lt;s:property value="#request.req"/&gt;` 来获取请求作用域内的 `req` 变量的值。 - **会话作用域** (`#session`): 同样地,`&lt;s:property...

    ognl标签的使用案例

    除了属性访问,OGNL还支持动态方法调用,如`&lt;s:property value="%{user.getName()}" /&gt;`。这允许我们在不改变视图层代码的情况下添加新的方法。 **6. 输入流处理与`inputStream`标签** 在Struts2中,`inputStream`...

    struts2的s标签

    &lt;p&gt;名称:&lt;s:property value="name"/&gt;&lt;/p&gt; &lt;/s:iterator&gt; ``` - **说明**:遍历一个集合或数组,并对每个元素执行标签体内的内容。 25. **`&lt;s:label&gt;`** - 显示标签。 - **示例**: ```jsp &lt;s:label value=...

    struts2中siterator 标签的使用详解 及 OGNL用法.docx

    这篇文档详细讲解了 `s:iterator` 标签的使用方法以及 OGNL(Object-Graph Navigation Language)的用法。 1. **s:iterator 标签的基本属性** - `value`:这个属性是必需的,用于指定要迭代的集合。它可以是一个...

    struts2标签介绍

    1. `&lt;s:bean&gt;` - 类似于Struts1中的JavaBean操作,但在Struts2中使用较少,因为Struts2更倾向于使用OGNL表达式来访问对象。 **C组标签:** 1. `&lt;s:checkbox&gt;` - 创建复选框,可以绑定到Action的属性。 2. `&lt;s:...

    OGNL表达式

    OGNL表达式通常结合Struts2的标签一起使用,比如使用 `&lt;s:property value="expression"/&gt;` 来展示数据。在使用过程中,需要注意#、%和$这三个符号的正确使用: - **#**:通常用于表示OGNL表达式,在Struts2中作为...

    struts学习笔记(4)

    &lt;s:property value="1&gt;2 && 2&lt;3" /&gt; ``` #### 三、Struts2 标签详解 Struts2 提供了一套丰富的标签库,可以帮助开发者更高效地开发 Web 应用。 1. **引入 Struts2 标签库**: - 在 JSP 页面中使用 `&lt;%@ taglib...

Global site tag (gtag.js) - Google Analytics