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;
}
} }
最新文章
- oracle数据查询
- javascript中的事件冒泡、事件捕获和事件执行顺序
- Android Glide数据更新及内存缓存、硬盘缓存清理
- MyBatis学习总结(五)——实现关联表查询
- BZOJ-1036 树的统计Count 链剖线段树(模板)=(树链剖分+线段树)
- V8 引擎的sort算法
- cannot convert from &#39;_TCHAR *&#39; to &#39;char *&#39;
- c++ 11 key note
- LCP Array(思维)
- 不完善的css怦然心动,有待改进...
- 【算法设计与分析基础】24、kruskal算法详解
- python怎么实现数组增加一行或多行
- Python练手例子(16)
- LOJ 2550 「JSOI2018」机器人——找规律+DP
- MM-移动类型
- 3.2 unittest执行顺序
- hexo自动部署到git、ftp(虚拟主机等)、云服务器的方式
- 单例设计模式Singleton之懒加载模式(懒汉模式)【原】
- -第2章 JS方法实现下拉菜单显示和隐藏
- 开源项目kcws代码分析--基于深度学习的分词技术
热门文章
- LibreOJ #107. 维护全序集
- java面试题(杨晓峰)---第八讲谈谈Vector,ArrayList,LinkedList有何区别?
- cesium-大规模人群运动测试
- 安全错误使用CORS在IE10与Node和Express及XMLHttpRequest: 网络错误 0x4c7, 操作已被用户取消
- 将一个double类型的小数,按照四舍五入保留两位小数.
- js完成打印功能
- 廖老师JavaScript教程高阶函数-sort用法
- Windows平台下MySQL常用操作与命令
- linux 下使用 curl 访问带多参数,GET掉参数解决方案
- c# 输出不同时间的格式