`
pengfeng
  • 浏览: 231719 次
  • 性别: Icon_minigender_1
  • 来自: 河南
社区版块
存档分类
最新评论

Struts2 OGNL遍历

阅读更多

OGNL是Object-Graph Navigation Language的缩写,它是一种功能强大的表达式语言(Expression Language,简称为EL),通过它简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。 
总的来说JSP页面中的元素<s:property value="xxx"/>,只要在action中有它对应的public Getter即可得到相应的值。 



<s:select label="label" name="name" list="{'name1','name2','name3'}" value="%{'name2'}" /> 

<s:select label="userList" name="userList" list="userList" listKey="id" listValue="name" /> // userList中为JavaBean 

<s:select label="'map'" name="mapList" list="map"/> 
 
选择(select)一个集合的子集(叫做投影),你可以在Collection中使用通配符. 

? -所有符合选择逻辑的元素 
^ - 符合选择逻辑的第一个元素 
$ - 符合选择逻辑的最后一个元素 
示例: 
JavaBean 
Book.java 
private String title; 
private String author; 
private double price; 

Action: private List<Book> bookList; 
JSP页面: 

<s:iterator value="bookList.{?#this.price > 35}"> 
      <s:property value="title" /> :<s:property value="price" /> 
</s:iterator> 


Iterator 


遍历List 

 

<s:iterator value="userList" status="status">
//userList来自Action的public List getUserList()得到,无参的Getter,且修饰符一定为public
      <s:set name="user"/>
      <s:property value="name"/>
      <s:property value="#user.name"/>//来自JSP页面的变量得用#引用
      <s:property value="top.name"/>
      <s:property value="top"/>
      <s:property value="getValue(#user)"/>//getValue为Action中定义的public User getValue(User user) 
</s:iterator>
 

遍历Map 

 

<s:iterator value="map" status="status">
     <s:property value="key"/>
     <s:property value="value"/>
</s:iterator>
 
例子

 

<s:iterator value="{'a','b','c'}" status="status" >
      <s:property value="#status.index" />
      <s:property value="#status.count-1" />
      <s:property value="top" />-
      <s:property value="'top'+#status.index+':'+top" />
</s:iterator>
 

输出 
0 0 a- top0:a 
1 1 b- top1:b 
2 2 c- top2:c 


iterator 中status 的方法: 

even : boolean - returns true if the current iteration is even 
odd  : boolean - returns true if the current iteration is odd 
count : int - returns the count (1 based) of the current iteration 
index : int - returns the index (0 based) of the current iteration 
first : boolean - returns true if the iterator is on the first iteration 
last : boolean - returns true if the iteration is on the last iteration 
modulus(operand : int) : int - returns the current count (1 based) modulo the given operand 
eg:<s:property value="#stat.modulus(2)" /> 


IF 

 

<s:if test="#status.odd">class1</s:if><s:else>class2</s:else>
<s:if test="type=='Amount'||type==null"> display</s:if>
//其中type相当<ww:property value="type" /> 
 

分享到:
评论
2 楼 hsw212 2008-12-15  
哦,还有
books.{?#this.price<100}

这个大括号应该什么时候用?

ognl看的我只晕
1 楼 hsw212 2008-12-15  
能帮忙解释下,#status.index,这个地方为什么用#吗?

<s:property value="'top'+#status.index+':'+top" />

十分感谢!

相关推荐

    Struts2中ognl遍历数组,list和map方法详解

    Struts2中OGNL遍历数组、List和Map方法详解 Struts2框架中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于在Web应用程序中访问和操作对象。其中,OGNL遍历数组、List和Map是常见的操作,...

    Struts2_OGNL

    OGNL(Object-Graph Navigation Language)是Struts2框架中的一个重要组件,用于在Web应用中访问和操作Java对象的属性,调用其方法,以及执行类型转换等操作。 OGNL是对象图导航语言的缩写,它是一种功能强大的...

    Struts2核心包ognl-2的源代码

    这个压缩包包含的是OGNL的2版本的源代码,这对于理解Struts2框架的工作原理以及OGNL语言的实现细节非常有帮助。 OGNL的主要功能是提供一种简洁的方式来获取和设置对象的属性,甚至可以处理复杂的对象图。例如,你...

    struts2 ognl表达式

    Struts2 OGNL表达式是Java Web开发中一个重要的概念,它是一种强大的对象图形导航语言(Object-Graph Navigation Language)。在Struts2框架中,OGNL被广泛用于视图层,作为数据绑定的主要手段,使得开发者能够方便...

    Struts2 使用OGNL遍历map方法详解

    本文将深入讲解如何使用OGNL遍历Map对象,以展示Struts2在处理复杂数据结构时的灵活性。 首先,让我们来看一下`MapAction`类的代码。在这个例子中,我们定义了四个不同类型的Map对象: 1. `private Map, String&gt; ...

    Struts2 使用OGNL表达式

    在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于数据绑定和表示层的数据交换。这篇博客文章可能详细探讨了如何在Struts2中使用OGNL来传递和操作数据。 OGNL是Struts2的核心...

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

    Struts2 OGNL(Object-Graph Navigation Language)表达式是一种强大的、动态的数据绑定和脚本语言,广泛应用于Struts2框架中。它允许开发者在视图层与模型层之间灵活地传递数据,增强了MVC架构中的灵活性。本文将...

    对 Struts2 OGNL 的分析与简介

    在Struts2中,OGNL(Object-Graph Navigation Language)是一种表达式语言,用于在模型、视图和控制器之间进行数据绑定和表达式处理。本文将深入探讨Struts2中的OGNL及其在实际应用中的作用。 首先,我们需要理解...

    struts2 OGNL

    Struts2 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,广泛应用于Apache Struts2框架中,用于在视图、控制器和模型之间进行数据的表达和操作。Struts2是Java Web开发中最流行的MVC框架之一,而...

    struts2 ognl

    2. **访问List**:在Struts2中,你可以使用OGNL来遍历和访问List中的元素。例如,假设有一个名为`users`的List,其中包含User对象,我们可以在JSP中通过`#users[索引]`来获取特定位置的User对象,如`#users[0]....

    struts2中的map遍历

    总的来说,Struts2中的Map遍历是通过OGNL和Struts2标签库实现的,这使得在视图层处理和展示Map数据变得简单而灵活。开发者可以根据需求构建各种复杂逻辑,高效地管理Web应用中的数据。了解并熟练掌握这一功能,对于...

    struts2对Ognl的封装--TypeConverter

    这篇博客文章"Struts2对Ognl的封装--TypeConverter"探讨了Struts2如何通过TypeConverter机制来增强OGNL的功能。 首先,我们来看一下OGNL。OGNL允许开发者用简洁的语法来获取和设置对象的属性,甚至可以进行复杂的...

    struts2-OGNL表达式测试

    这个“struts2-OGNL表达式测试”可能是一个测试项目或代码示例,旨在演示如何在Struts2应用中使用OGNL表达式。 OGNL是Struts2的核心组件之一,它允许开发者通过简单的字符串表达式来获取或设置对象的属性。这使得视...

    STRUTS2+ognl

    Ognl(Object-Graph Navigation Language)是Struts2中的一个重要组件,用于在视图层和模型层之间传递数据。本文将详细介绍Struts2、Webwork以及Ognl的相关知识点,并提供入门指导。 **Struts2框架** Struts2是在...

    struts2中OGNL的一些概念及原理说明

    ### Struts2中OGNL的概念及原理说明 #### 一、OGNL表达式的基本用法与特点 **OGNL**,即**Object Graphic Navigation Language**(对象图导航语言),是Struts2框架中用于处理对象及其属性的强大工具之一。通过...

    struts2中的ognl

    Struts2是一个流行的Java web开发框架,而OGNL(Object-Graph Navigation Language)是它用于表达数据绑定和表达式语言的核心组件。在Struts2中,OGNL被广泛用于访问和操作应用程序中的对象属性,包括在请求、参数、...

    Struts2 如何使用OGNL表达式(三十八)

    在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于在视图层和模型层之间进行数据绑定和表达式计算。本文将深入探讨如何在Struts2中有效地使用OGNL表达式。 首先,OGNL是Struts2的...

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

    OGNL(Object-Graph Navigation Language)是Struts2框架中常用的一种表达式语言,用于在视图层方便地访问和操作模型数据。本篇笔记主要介绍了在Struts2中使用OGNL的一些基本用法。 首先,OGNL可以用来获取不同范围...

    精通struts2的ognl表达式

    ### 精通Struts2中的OGNL表达式 在深入探讨Struts2框架的核心功能时,理解并熟练掌握OGNL(Object-Graph Navigation Language)表达式的应用是至关重要的一步。OGNL是一种强大的表达式语言,它允许开发者通过简洁、...

    ognl 源码: struts2 所用的 ognl 包源码

    在 Struts2 框架中,OGNL 作为默认的表示层语言,用于视图与模型之间的数据绑定。Struts2 的核心功能之一就是允许开发者通过 OGNL 表达式在 JSP 页面、Action 类以及值栈之间灵活地传递数据。 源码分析: 1. **...

Global site tag (gtag.js) - Google Analytics