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表达式详解的更多相关文章

  1. cron表达式详解

    @Scheduled(cron = "* * * * * *") cron表达式详解 1.cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份( ...

  2. Lambda表达式详解(例子详解)(转自:http://blog.csdn.net/damon316/article/details/51734661)

    Lambda表达式详解(例子详解)     lambda简介 lambda运算符:所有的lambda表达式都是用新的lambda运算符 " => ",可以叫他,“转到”或者 ...

  3. zabbix3.4.7触发器表达式详解

    zabbix触发器表达式详解 概述:触发器中的表达式使用很灵活,我们可以创建一个复杂的逻辑测试监控,触发器表达式形式如下: {<server>:<key>.<functi ...

  4. Spring定时器corn表达式详解

    1.结构 Spring定时器corn表达式详解 2.各字段的含义 字段 允许值 允许的特殊字符 秒 0~59 - * / 分 0~59 - * / 小时 0~23 - * / 日期 1~31 - * ...

  5. Cron表达式详解和表达式的验证

    本篇不算原创,因为主要内容来自网上的博客,所以给出我参考文章的链接. 本文cron表达式详解的大部分内容参考了[cron表达式详解]和Quartz使用总结.Cron表达式 这两篇文章. cron校验的 ...

  6. Java 8 Lambda 表达式详解

    一.Java 8 Lambda 表达式了解 参考:Java 8 Lambda 表达式 | 菜鸟教程 1.1 介绍: Lambda 表达式,也可称为闭包,是推动 Java 8 发布的最重要新特性. La ...

  7. spring定时任务(@Scheduled注解)cron表达式详解

    cron表达式详解: 一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 秒(~) 分钟(~) 小时(~) 天(~) 月(~) 星期(~ =SUN 或 SUN,MON,TU ...

  8. 类型:.net;问题:C#lambda表达式;结果:Lambda表达式详解

    Lambda表达式详解   前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸夸lambda吧:简化了匿名委托的使用,让你让代码更加简洁,优雅.据说它是微软自c#1 ...

  9. javascript:function 函数声明和函数表达式 详解

    函数声明(缩写为FD)是这样一种函数: 有一个特定的名称 在源码中的位置:要么处于程序级(Program level),要么处于其它函数的主体(FunctionBody)中 在进入上下文阶段创建 影响 ...

随机推荐

  1. HDU 2149 Public Sale 拍卖(巴什博弈)

    思路:只要能给对方留下n+1,我就能胜,否则败. #include <iostream> #include <cstdio> using namespace std; int ...

  2. UVA 11093 Just Finish it up 环形跑道 (贪心)

    有一个环形跑道,上面有n个加油站,到i号加油站可以加pi的油,跑到下一站要花费qi的油,起点任意选,问是否有一个起点可跑完整个跑道. 从i开始跑,如果遇到某个站j不能跑了,那么从i到j之间的站开始跑, ...

  3. guruguru

    6576: guruguru 时间限制: 1 Sec  内存限制: 128 MB提交: 28  解决: 12[提交] [状态] [讨论版] [命题人:admin] 题目描述 Snuke is buyi ...

  4. Java替换手机号掩码

    String tel = "18304072984"; // 括号表示组,被替换的部分$n表示第n组的内容 tel = tel.replaceAll("(\\d{3})\ ...

  5. C++ NULL与nullptr的区别

    C与C++中空指针的区别 在C里面,由于处处都要使用指针,所以导致NULL遍布各地.我们先来看C99是怎么定义NULL的: NULL can be defined as any null pointe ...

  6. C#语言命名的9种规范

    下面介绍C#语言命名的9种规范: a) 类 [规则1-1]使用Pascal规则命名类名,即首字母要大写. [规则1-2]使用能够反映类功能的名词或名词短语命名类. [规则1-3]不要使用“I”.“C” ...

  7. 01_10_Struts2_2.1.6版本的中文问题

    01_10_Struts2_2.1.6版本的中文问题 1. 由于Struts2_2.1.6存在bug 正常情况下在struts.xml配置如下一行 <constant name="st ...

  8. 【Python学习之五】高级特性4(切片、迭代、列表生成器、生成器、迭代器)

    4.生成器(generator) 通过列表生成式,我们可以直接创建一个列表.但是,受到内存限制,列表容量肯定是有限的.如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的 ...

  9. 如何封装RESTful Web Service

    所谓Web Service是一个平台独立的,低耦合的,自包含的.可编程的Web应用程序,有了Web Service异构系统之间就可以通过XML或JSON来交换数据,这样就可以用于开发分布式的互操作的应 ...

  10. R-barplot()

    barplot这个函数啊...坑...度娘的很多解决方案都不对,只好重新看回manual再做测试== 本文参考的是: https://stat.ethz.ch/R-manual/R-devel/lib ...