OGNL表达式详解
OGNL表达式标签中的值有三种:
1.直接是OGNL表达式。
2.字符串需转义自OGNL表达式。
1)OGNL表达式转换为字符串显示,需要用''(单引号)引起来。
2)转为OGNL表达式的字符串,需要加%{字符串}来转换
3.只能是字符串。
标签:
一、数据标签
1.property -- 显示数据
value -- 要显示的内容,放OGNL表达式 如果要显示字符串,需要用''引起来。
escape -- true/false 默认是true, 改为false显示html效果标签
default 默认值,放字符串,不是放OGNL
<s:property value="'<h1>HAHA<h1>'" escape="false" default="[这是默认值]"/>

2.set -- 设置一个新变量,赋值
var -- 新变量名
scope --范围 page/request/session/application
value --变量值,OGNL表达式,字符串要加单引号
<s:set var="ah" value="newsList" scope="request"></s:set>
<s:property value="#request.ah"/>

3.url -- 生成网址
var -- 变量名
value--要生成的URL地址,字符串可转义自OGNL,要手动写出完整的地址。
action -- 要生成的URL地址,字符串可转义自OGNL,生成出绝对路径。一般用这个
<s:url var="uu" action="News_getAll"></s:url>
<s:property value="#uu"/>

4.bean -- JavaBean的实现类
name -- 要实例化的Java类
var -- 变量名
5.param -- 生成参数
name -- 标签名
value -- OGNL表达式,加单引号
<s:bean name="com.itnba.maya.domel.News" var="bbb">
<s:param name="biaoti" value="'这是自定义的标题'"></s:param>
</s:bean>
<s:property value="#bbb.biaoti"/>

<s:url var="uu" action="News_getAll">
<s:param name="ids" value="'k001'"></s:param>
</s:url>
<s:property value="#uu"/>

6.date -- 格式化输出日期
name -- 要格式化的日期值 --- OGNL表达式
format --- 格式化显示的格式。
<s:date name="date" format="yyyy年MM月dd日" var="mydate"/>
<s:property value="mydate"/>

二、控制标签
1.if...else if ...else
test -- 表格式 OGNL
2.iterator
var
value --OGNL
status :even,odd,first,last,index,count
begin
end
step

<s:iterator var="aa" value="newsList" status="st">
<s:if test="#st.even">
<div style="">
</s:if> <s:else>
<div>
</s:else>
<s:property value="#st.index+1"/>.
<s:property value="#aa.biaoti"/>
</div>
</s:iterator>


3.append/merge/subset
var--新的对象名
<param> 子元素

<s:set value="{'aa','bb','cc'}" var="aa"></s:set>
<s:set value="{'11','22','33'}" var="bb"></s:set>
<s:append var="all">
<s:param name="one" value="#aa"></s:param>
<s:param name="two" value="#bb"></s:param>
</s:append>



<s:set value="{'aa','bb','cc'}" var="aa"></s:set>
<s:set value="{'11','22','33'}" var="bb"></s:set>
<s:merge var="all">
<s:param name="one" value="#aa"></s:param>
<s:param name="two" value="#bb"></s:param>
</s:merge>
<s:iterator value="#all" var="t">
<s:property value="#t"/><br>
</s:iterator>


4.generater
seperator--分隔符
val--被分隔的字符串
var -- 分隔成的数组名
<s:generator val="'a,b,c,d'" separator="," var="s"></s:generator>
<s:iterator value="#s" var="t">
<s:property value="#t"/><br>
</s:iterator>

5.sorted
source --- 集合
comparator -- 对比器对象

<s:set value="{'aaaa','bb','ccc','dddd'}" var="arr"></s:set>
<s:bean name="com.itnba.maya.domel.Duibiqi" var="duibiqi"></s:bean>
<s:sort comparator="duibiqi" var="sss" source="#arr" >
<s:iterator var="str">
<s:property value="#str"/><br>
</s:iterator>
</s:sort>
<s:property value="#arr.size()"/>

还需要建一个类,实现Comparator接口。用来做对比器

package com.itnba.maya.domel;
import java.util.Comparator;
public class Duibiqi implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
if(o1.length() > o2.length()){
return -1;
}
else if(o1.length() == o2.length()){
return 0;
}
else{
return 1;
}
}
}


OGNL表达式详解的更多相关文章
- cron表达式详解
@Scheduled(cron = "* * * * * *") cron表达式详解 1.cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份( ...
- Lambda表达式详解(例子详解)(转自:http://blog.csdn.net/damon316/article/details/51734661)
Lambda表达式详解(例子详解) lambda简介 lambda运算符:所有的lambda表达式都是用新的lambda运算符 " => ",可以叫他,“转到”或者 ...
- zabbix3.4.7触发器表达式详解
zabbix触发器表达式详解 概述:触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下: {<server>:<key>.<functi ...
- Spring定时器corn表达式详解
1.结构 Spring定时器corn表达式详解 2.各字段的含义 字段 允许值 允许的特殊字符 秒 0~59 - * / 分 0~59 - * / 小时 0~23 - * / 日期 1~31 - * ...
- Cron表达式详解和表达式的验证
本篇不算原创,因为主要内容来自网上的博客,所以给出我参考文章的链接. 本文cron表达式详解的大部分内容参考了[cron表达式详解]和Quartz使用总结.Cron表达式 这两篇文章. cron校验的 ...
- Java 8 Lambda 表达式详解
一.Java 8 Lambda 表达式了解 参考:Java 8 Lambda 表达式 | 菜鸟教程 1.1 介绍: Lambda 表达式,也可称为闭包,是推动 Java 8 发布的最重要新特性. La ...
- spring定时任务(@Scheduled注解)cron表达式详解
cron表达式详解: 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 秒(~) 分钟(~) 小时(~) 天(~) 月(~) 星期(~ =SUN 或 SUN,MON,TU ...
- 类型:.net;问题:C#lambda表达式;结果:Lambda表达式详解
Lambda表达式详解 前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅.据说它是微软自c#1 ...
- javascript:function 函数声明和函数表达式 详解
函数声明(缩写为FD)是这样一种函数: 有一个特定的名称 在源码中的位置:要么处于程序级(Program level),要么处于其它函数的主体(FunctionBody)中 在进入上下文阶段创建 影响 ...
随机推荐
- MySQL数据库详解(三)MySQL的事务隔离剖析
提到事务,你肯定不陌生,和数据库打交道的时候,我们总是会用到事务.最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱. 转账过程具体到程序里会有一系列的操作,比如 ...
- LibreOJ #2003. 「SDOI2017」新生舞会
内存限制:256 MiB 时间限制:1500 ms 标准输入输出 题目类型:传统 评测方式:文本比较 上传者: 匿名 01分数规划(并不知道这是啥..) km或费用流(并不会)验证 屠龙宝刀点击就送 ...
- linux yum安装指定版本mysql
1.下载mysql rpm包 cd /usr/local/src wget https://dev.mysql.com/get/mysql80-community-release-el7-.noarc ...
- python3.6.2利用pyinstaller发布EXE
我的环境是Ubuntu 16.04,系统自带Python2和Python3 安装 pip3 install pyinstaller 发布exe pyinstaller -F helloworld.py ...
- 两个有序数列,求中间值 Median of Two Sorted Arrays
原题: There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the ...
- Idea01 Idea2018中集成Tomcat9导致OutPut乱码
版本和平台 idea2018.3 tomcat9 jdk1.8 windows7 64位 output乱码 经过测试,项目编码格式设置为utf-8,在main方法中输出中文正常. 而iedea集成to ...
- Dojo的ready函数:dojo.ready(以前的dojo.addOnLoad)
dojo的dojo/domReady!插件和dojo/ready的区别: In simple cases,dojo/domReady! should be used. If an app us ...
- Hibernate中session的save方法问题
今天在使用session.save(),进行插入数据操作时,一直没有成功,也没有报错.后来发现是因为没有创建事务,提交事务的原因 你对flush和commit的意思没有理解到:1,flush代表刷新, ...
- C#数组添加元素
一.向数组添加元素 在C#中,只能在动态数组ArrayList类中向数组添加元素.因为动态数组是一个可以改变数组长度和元素个数的数据类型. 示例: using System;using System. ...
- Yum简单使用小结
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器.基于RPM包管理,能够从指定的服务器自动 ...