25.OGNL与ValueStack(VS)-集合对象进阶
转自: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)-集合对象进阶的更多相关文章
- 24.OGNL与ValueStack(VS)-集合对象初步
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 首先在LoginAction中增加如下字段并提供相应的get/set方法: ...
- struts2.1.6教程四、OGNL与ValueStack(VS)
1.值栈入门 下面我们建立struts2ognl项目来练习ognl的使用. 步骤一.搭建strust2的开发环境 步骤二.建立LoginAction,主要代码如下: package com.asm; ...
- [原创]java WEB学习笔记59:Struts2学习之路---OGNL,值栈,读取对象栈中的对象的属性,读取 Context Map 里的对象的属性,调用字段和方法,数组,list,map
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- 十九、利用OGNL获取ValueStack中:根栈和contextMap中的数据
利用OGNL获取ValueStack中:根栈和contextMap中的数据 原则:OGNL表达式如果以#开头,访问的contextMap中的数据 如果不以#开头,是访问的根栈中的对象的属性(List集 ...
- Struts2第九篇【OGNL、valueStack详解】
什么是OGNL表达式? OGNL是Object Graphic Navigation Language 是操作对象属性的开源表达式. Struts2框架使用OGNL作为默认的表达式语言. 为什么我们学 ...
- Struts2【OGNL、valueStack】就是这么简单
什么是OGNL表达式? OGNL是Object Graphic Navigation Language 是操作对象属性的开源表达式. Struts2框架使用OGNL作为默认的表达式语言. 为什么我们学 ...
- [ SSH框架 ] Struts2框架学习之三(OGNl和ValueStack值栈学习)
一.OGNL概述 1.1 什么是OGNL OGNL的全称是对象图导航语言( object-graph Navigation Language),它是一种功能强大的开源表达式语言,使用这种表达式语言,可 ...
- 29.OGNL与ValueStack(VS)-总结OGNL[重点]
转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html OGNL是Object Graphic Navigation Languag ...
- 【Struts2】Ognl与ValueStack
一.OGNL 1.1 概述 1.2 OGNL 五大类功能 1.3 演示 二.ValueStack 2.1 概述 2.2 ValueStack结构 2.3 结论 2.3 一些问题 三.OGNL表达式常见 ...
随机推荐
- nyoj1273 河南省第九届省赛_"宣传墙"、状压DP+矩阵幂加速
宣传墙 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 ALPHA 小镇风景美丽,道路整齐,干净,到此旅游的游客特别多.CBA 镇长准备在一条道路南 面 4*N 的墙上做 ...
- IOS-static cell 与 dynamic cell 混合使用
static cell 与 dynamic cell 混合使用 关于静态cell与动态cell的混合使用,google一下便会有很多相关文章,这里也是看过一些前辈的经验(已经忘记具体是从哪篇文章得到的 ...
- 044——VUE中组件之使用内容分发slot构建bootstrap面板panel
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- iOS UILabel两端对齐的实现(可包括中英文/数字)
- (void)conversionCharacterInterval:(NSInteger)maxInteger current:(NSString *)currentString withLabe ...
- 博客(第0次作业)—— New Starting Point
一.最理想的师生关系是健身教练和学员的关系,在这种关系中你期望获得来自老师的那些帮助? 正如文章中所说,这些学员的想法得足够强烈, 他/她才会花钱去参加这样的健身活动,每一个来学习的学生, 都是想学 ...
- mongodb sharding集群搭建
创建虚拟机,如果是使用copy的方式安装系统,记得修改机器名,否则所有的机器名称都一样,会造成安装失败 同时关闭掉防火墙,将所有的机器的时间调成一致,master和slave的heartbeat间隔不 ...
- hasura graphql 引擎基本试用
hasura 使用一个基于pg数据库的graphql引擎,他的设计比postgrpahql 有好多方便的地方,同时使用也比较简单 安装 docker && docker-compose ...
- c++交叉#include问题
这个问题会引起莫名其妙的编译错误, 碰到类里有其他类的指针的话,不要#include,提前声明下即可 class_a.h #ifndef CLASS_A_H #define CLASS_A_H cla ...
- 记 TP-Link 路由器的 WDS 设置
记 TP-Link 路由器的 WDS 设置 有一台旧的 TP-Link 路由器,是以前朋友送的,外壳看起来还不错,也挺新的. 本来已经有一台极路由了,看到信号还是不够好,所以想使用 TP-Link 的 ...
- How to Install MySQL on CentOS 7
CentOS 7的yum源中貌似没有正常安装mysql时的mysql-sever文件,需要去官网上下载 # wget http://dev.mysql.com/get/mysql-communit ...