转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html

首先在LoginAction中增加如下字段并提供相应的get/set方法:
private List studentList = new
ArrayList();
然后再在execute中为其初始化赋值,代码如下:
studentList.add(new Student("jack", 20,
86.0f));

studentList.add(new Student("lily", 22,
96.5f));

studentList.add(new Student("tom", 23,
56.5f));

最后在loginSuc.jsp中增加如下代码:
获取List中的Student对象:<s:property
value="studentList"/><br>

利用投影获取List中的name属性:<s:property
value="studentList.{name}"/><br>

利用投影获取List中的age属性:<s:property
value="studentList.{age}"/><br>

利用投影获取List中的第一个对象的name属性:<s:property value="studentList.[0]{name}"/>   或者<s:property
value="studentList.{name}[0]"/><br>

利用选择获取List中grade>60的student信息:

<s:property value="studentList.{?#this.grade>60}"/><br>

利用选择获取List中grade>60的student名字信息:

<s:property value="studentList.{?#this.grade>60}.{name}"/><br>

利用选择获取List中grade>60的第一个student名字信息:

<s:property value="studentList.{?#this.grade>60}.{name}[0]"/><br>

利用选择获取List中grade>60的第一个student名字信息(链表):

<s:property value="studentList.{^#this.grade>60}.{name}"/><br>

利用选择获取List中grade>60的最后一个student名字信息(链表):

<s:property value="studentList.{$#this.grade>60}.{name}"/><br>

说明:这里重点是说明?#的使用,结合此例来看,studentList中有许多Stutdent对象,我们可以用条件来限制取哪些对象,这些条件必须以?#开始,并且条件要用{}括起。而this是指在判断studentList中的对象是否符合条件的当前对象。?#是指取出符合条件的所有Student对象,而^#是指取出符合条件的第一个对象,$#是指取出符合条件的最后一个对象。

25.OGNL与ValueStack(VS)-集合对象进阶的更多相关文章

  1. 24.OGNL与ValueStack(VS)-集合对象初步

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 首先在LoginAction中增加如下字段并提供相应的get/set方法: ...

  2. struts2.1.6教程四、OGNL与ValueStack(VS)

    1.值栈入门 下面我们建立struts2ognl项目来练习ognl的使用. 步骤一.搭建strust2的开发环境 步骤二.建立LoginAction,主要代码如下: package com.asm; ...

  3. [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  4. 十九、利用OGNL获取ValueStack中:根栈和contextMap中的数据

    利用OGNL获取ValueStack中:根栈和contextMap中的数据 原则:OGNL表达式如果以#开头,访问的contextMap中的数据 如果不以#开头,是访问的根栈中的对象的属性(List集 ...

  5. Struts2第九篇【OGNL、valueStack详解】

    什么是OGNL表达式? OGNL是Object Graphic Navigation Language 是操作对象属性的开源表达式. Struts2框架使用OGNL作为默认的表达式语言. 为什么我们学 ...

  6. Struts2【OGNL、valueStack】就是这么简单

    什么是OGNL表达式? OGNL是Object Graphic Navigation Language 是操作对象属性的开源表达式. Struts2框架使用OGNL作为默认的表达式语言. 为什么我们学 ...

  7. [ SSH框架 ] Struts2框架学习之三(OGNl和ValueStack值栈学习)

    一.OGNL概述 1.1 什么是OGNL OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可 ...

  8. 29.OGNL与ValueStack(VS)-总结OGNL[重点]

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html OGNL是Object Graphic Navigation Languag ...

  9. 【Struts2】Ognl与ValueStack

    一.OGNL 1.1 概述 1.2 OGNL 五大类功能 1.3 演示 二.ValueStack 2.1 概述 2.2 ValueStack结构 2.3 结论 2.3 一些问题 三.OGNL表达式常见 ...

随机推荐

  1. 使用yum安装pip

    PIP 简介:pip 是一个现代的,通用的 Python 包管理工具.提供了对 Python 包的查找.下载.安装.卸载的功能.功能类似于RedHat里面的yum 使用yum安装pip 因为测试环境搭 ...

  2. 基于Open XML 导出数据到Excel

    数据导出的结果: 步骤1.新建一个Excel 文档,模板根据自己需要设置 步骤2.使用OpenXml  打开Excel 文件 步骤3.点击ReflectCode 功能,生成相应的代码文档 using ...

  3. Python3 运算符(八)

    什么是运算符? 举个简单的例子 4 +5 = 9 . 例子中,4 和 5 被称为操作数,"+" 称为运算符. Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 ...

  4. JSON.js 源码学习..

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. UML类图中的各种箭头代表的含义(转自:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html)

    1.UML简介Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是他 ...

  6. Java第三次作业--面向对象基础(封装)

    Deadline: 2017-4-6 23:00 一.学习要点 认真看书并查阅相关资料,掌握以下内容: 掌握简单类的设计 掌握利用对象引用建立类与类之间的联系 掌握this关键字 掌握static关键 ...

  7. backports移植rtlwifi驱动

    /************************************************************************ * backports移植rtlwifi驱动 * 说 ...

  8. Oozie_02安装遇到错误【20161116】

    [错误原因]hadoop的core-site.xml配置错误  把用户名hadoop配置成了主机名hadoop01 <!-- OOZIE --><property> <n ...

  9. Spring Boot 的项目打包成的 JAR 包,制作成 docker 镜像并运行

    上一篇:Docker学习(三)docker容器操作 首先把本地的项目打包好,我这里直接把已经打包好的springboot-mybatis-0.0.1-SNAPSHOT.jar包直接上传到linuxmy ...

  10. 掉电脉冲映射串口log和dmesg到文件中的log

    1.echo 1 > /mytest/boot_times 2.systemctl enable i2c_dmesg.service root:/mytest# tree . |-- boot_ ...