struts2简单入门-OGNL表达式
- 什么是OGNL表达式
- Object-Graph Navigation Language的缩写。
- 可以遍历整个对象结构图,实现对象类型转换等功能的表达式。
- OGNL实际上是个Map集合,有一个上下文根对象。
- ActionContext作为OGNL上下文,并把ValueStack作为根对象。
- ValueStack
- 可以执行,增加,删除,查询。
- struts2会把Action放到栈顶。

- OGNL中的几个家伙
- #
- 访问非根对象属性
#session.msg
相当于 ActionContext.getContext().getSession().getAttribute("msg");
- %
- 字符串类型时,计算OGNL表达式
- $
- 在国际化资源文件中,引用OGNL表达式
- 在Struts 2框架的配置文件中引用OGNL表达式
- @
- 访问静态方法
- 常用标签
- 流程控制标签
<s:if test="{}"></s:if>//if表达式
<s:if test="{}"></s:if><s:else></s:else>//if else 表达式
<s:ifelse test="{}"></s:ifelse>//Ifelse 表达式
//test 字符串 要加%{} 判断集合元素的符号 in,not in
//in 判断集合是否在当前集合内,not in 判断集合是否不在当前集合内. OGNL过滤表达式
?://获取所有符合的元素
^://获取第一个符合的元素
$://获取最后一个符合的元素 <s:iterator value=""></s:iterator>
//对一个集合进行迭代
//id 集合内元素的ID
//status 指定迭代对象名称
<s:iterator value="books.{?#this.price > 35}">
//?#this.price > 35 this 指取当前集合内的属性值符合条件的元素。
<s:property value="title" /> - $<s:property value="price" />
</s:iterator>- 通用标签
<s:property value="">
//default 获取属性值.
//scope 指定命名空间.
//value 属性名
//id 元素标识 <s:set scope="" name="" value="">
//设置属性值 value 如果是字符串需要加'',否则会当成变量.
//scope 可以是application、session、request、 page或action. <s:action id="" name="" namespace="" executeResult="false|true" ignoreContextParams="false|true"/>
//action 引用名称 namespace 命名空间 executeResult 是否返回视图 ignoreContextParams 是否传递参数 <s:bean id="" name="">
// id 引用名称 带id 标签结束不会移除对象 name 实现类全路径
<s:param name="" value=""/>
//name 参数名称 value 参数值
</s:bean> <s:date format="" nice="" name="" id=""/>
//format 日期输出格式 nice 输出时间差 name 时间值 id 引用名称- 调试标签
<s:debug/>
//输出所有的信息valuestack context <s:fielderror/>
//控制端 调用addFieldErrors(,) <s:actionerror/>
//获取Action错误消息 需要在控制端调用addActionError 方法 <s:actionmessage/>
//获取Action消息 需要在控制端调用addActionMessage方法- 表单标签
- #
struts2简单入门-OGNL表达式的更多相关文章
- (补充)9.Struts2中的OGNL表达式
OGNL表达式概述 1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写 * 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关 ...
- 20160502-struts2入门--ognl表达式
一.OGNL表达式语言 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts 2框架使用OGNL作为默认的表达式语言 ...
- struts2学习笔记--OGNL表达式1
struts2标签库主要使用的是OGNL语言,类似于El表达式,但是强大得多,它是一种操作对象属性的表达式语言,OGNL有自己的优点: 能够访问对象的方法,如list.size(); 能够访问静态属性 ...
- struts2框架之OGNL表达式概述(在代码中使用OGNL表达式)
1. OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写 * 所谓对象图,即以任意一个对象为根,通过OGNL可以访问与这个对象关联的其它对象 * 通 ...
- Struts2中的OGNL表达式
一.OGNL表达式简介 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目.所谓对象图,即以任意一个对象为根,通过OGNL可以访问 ...
- 【java开发系列】—— struts2简单入门示例
前言 最近正好有时间总结一下,过去的知识历程,虽说东西都是入门级的,高手肯定是不屑一顾了,但是对于初次涉猎的小白们,还是可以提供点参考的. struts2其实就是为我们封装了servlet,简化了js ...
- struts2中使用ognl表达式时各种符号的使用规则$,#,%
OGNL表达式struts2标签“%,#,$” 一.什么是OGNL,有什么特点? OGNL(Object-Graph Navigation Language),大概可以理解为:对象图形化导航语言.是一 ...
- 【基于初学者的SSH】struts2 值栈的详解与struts2标签库+ognl表达式
一:什么是值栈:struts2里面本身提供的一种存储机制,类似于域对象,值栈,可以存值和取值 特点:先进后出,最上面的元素叫做栈顶,也叫压栈. <s:debug></s:debug& ...
- 2018.11.24 struts2中的OGNL表达式及两者的结合
OGNL表达式 OGNL:对象视图导航语言. ${user.addr.name} 这种写法就叫对象视图导航. OGNL不仅仅可以视图导航.支持比EL表达式更加丰富的功能. 理解图示 使用OGNL准备工 ...
随机推荐
- vue.js sha256加密
sha256: 1.使用cnpm安装 :cnpm install js-sha256 2.然后在组件中methods定义方法,在调用 let sha256 = require("js-sha ...
- 26 python 初学(线程、同步锁、死锁和递归锁)
参考博客: www.cnblogs.com/yuanchenqi/articles/5733873.html 并发:一段时间内做一些事情 并行:同时做多件事情 线程是操作系统能够进行运算调度的基本单位 ...
- 最简单易懂的Spring Security 身份认证流程讲解
最简单易懂的Spring Security 身份认证流程讲解 导言 相信大伙对Spring Security这个框架又爱又恨,爱它的强大,恨它的繁琐,其实这是一个误区,Spring Security确 ...
- YCD 软件更新方法
备份Messenger的数据库和Player的Chainmail数据 Upgrade process in Cnario is quite simple, uninstall old version ...
- System.Diagnostics.Process 测试案例
1.System.Diagnostics.Process 执行exe文件 创建项目,编译成功后,然后把要运行的exe文件拷贝到该项目的运行工作目录下即可,代码如下: using System; usi ...
- java内存模型详解
对于本篇文章,将从四个概念来介绍:内存模型基础,重排序,顺序一致性和happens-before 1.内存模型基础 在并发编程中,有两个关键问题:线程之间如何通信和如何同步.由此而引出了两种并发模型: ...
- 第四章· Redis的事务、锁及管理命令
一.事务介绍 二.Redis乐观锁介绍 三.Redis管理命令 一.事务介绍 Redis的事务与关系型数据库中的事务区别 1)在MySQL中讲过的事务,具有A.C.I.D四个特性 Atomic(原子性 ...
- CodeForces 1151C Problem for Nazar
题目链接:http://codeforces.com/problemset/problem/1151/C 题目大意: 有一个只存奇数的集合A = {1, 3, 5……2*n - 1,……},和只存偶数 ...
- git的git bash使用
一.git配置 在你使用git之前,需要先进行配置,即要报名号,否则不能提交代码 $ git config --global user.name # 你是谁 $ git config --global ...
- Day044--javascript, ECMAScript
一. javascript JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:操作网页上的 ...