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)中 在进入上下文阶段创建 影响 ...
随机推荐
- vue-cli版本更新(2.9.1)问题记录-2
今天想把做好的页面放在手机端浏览,发现新版的vue-cli无论在PC还是手机都只能用localhost访问(127.0.0.1除外).....(这样还怎么让我用手机吃鸡了!TT),于是我在网上查找了一 ...
- 使用JS的画布制作一个瞄准镜
<canvas width="600" height="500" id="myCanvas"></canvas> & ...
- CPP-STL:vector的内存释放
1. vector容器的内存自增长 与其他容器不同,其内存空间只会增长,不会减小.先来看看"C++ Primer"中怎么说:为了支持快速的随机访问,vector容器的元素以连续方式 ...
- 《剑指offer》51:数组中的逆序对
题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数P.并将P对1000000007取模的结果输出. 即输出P%1000 ...
- Mybatis中关于OGNL表达式冲突
注意设计表字段不能用bor xor and band eq neq lt gt lte gte shl shr ushr
- JQuery EasyUI学习记录(三)
1.jQuery EasyUI messager使用方式 1.1 alert方法 $(function(){ //1.alert方法---提示框 $.messager.alert("标题&q ...
- Eclipse:Win10中设置Courier New字体
问题:在Eclipse中设置字体的时候,没有找到Courier New字体.系统为Win10. 解决:Eclipse使用的字体为系统字体.在系统字体中有一部分是隐藏的.Courier New已经在系统 ...
- 实现HTTP文件下载
[原文:http://www.jb51.net/article/89958.htm] HTTP实现文件下载时,只要在服务器设置好相关响应头,并使用二进制传输文件数据即可,而客户端(浏览器)会根据响应头 ...
- linux centos 下ssh的连接
参考链接 虚拟机下CentOS7开启SSH连接 记录 我用finalssh连接virtualbox里的centos,发现报出java.net.UnknownHostException 一开始我以为是s ...
- 使用三层交换配置DHCP为不同VLAN分配IP地址
三层交换的原理以及DHCP的原理,作者在这里就不详细的解释了,在这里通过一个案例来了解使用三层交换做DHCP服务器,并为不同网段分配IP地址.在生产环境中,使用路由器或交换机做DHCP服务器要常见一些 ...