Ognl 和 EL 和jstl区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ognl 和 EL 和jstl区别相关的知识,希望对你有一定的参考价值。
E L(Expression Language) 目的:为了使JSP写起来更加简单。ognl表达式一般用于struts中,也是el的一种
JSTL(JSP Standard Tag Library ,JSP标准标签库)是一个不断完善的开放源代码的JSP标签库 参考技术A ognl表达式一般用于struts中
el要比jstl好用
虽然书写上很像
OGNL和EL表达式对比 Struts2标签和JSTL对比
本人发现Struts2中的标签和OGNL表达式,和Hibernate中用到的EL表达式和JSTL有一定的相似之处,对比学习会更加清晰,所以加以对比,以加深记忆。
OGNL(Object-Graph Navigation Language)对象图导航语言
OGNL表达式访问值栈:
1. 值栈(Value Stack),可以理解为一个 存储数据的Map,主要存储了当前action 的 实例。所以就可以使用OGNL访问值栈中的内容,也就是action的属性
2.OGNL表达式通过getter方法 来访问action中的属性,所以,action中的属性一定都要添加getter/setter方法。
例:< s: property value = "house . street . streetName"/> //< s: property>用来在jsp页面中显示OGNL表达式的值,OGNL表达式写在value属性中。
3. 其实,值栈是被存储在request当中的,不过由于action中保存的值使用频率很高,所以OGNL提供了直接 访问值栈的方式,以简化编程。
OGNL表达式访问Stack Context:
action以外的数据都存储在Stack Context中,如request , session , application等。访问Stack Context中的 内容,需要加上“#” 符号
如:< s: property value = "#session.userName"/> //访问session中 的userName
EL(Expression Language)表达式
EL表达式用来访问各种作用域中的数据,并显示在JSP页面中。
语法:${ EL表达式 } // "$" 和“{}” 缺一不可
要点
1. 使用EL表达式之前,必须将操作的对象保存到作用域中 。JSP提供了4种作用域: page ,request , session , application.
2. “作用域名称.” 方式即可实现 使用作用域 访问对象 读取属性值,如:
${ requestScope.news["title"]} //读取新闻标题
3. 当使用EL表达式访问某个属性值是,应当指定 查找的范围 。如果程序不指定查找的范围,那么 系统会自动按照( page -》request -》 session -》 application)的 顺序进行查 找所以,以上例子也可以写成:${ news["title"]}
4. EL表达式访问对象的属性,有两种方法: “.”操作符和 "[ ]" 操作符
${news.title} 或者 ${ news["title"]}
5. EL表达式访问变量和 集合
${ userName} 访问变量 ${ list[0] } 访问集合
Struts2标签
使用Struts2标签之前需要在 JSP页面上 添加taglib指令:<%@ tagib uri = "/struts-tags" profix = " s" %>
分类:
通用标签(Generic Tag)
数据标签(Data Tag)
<s:property> <s:url> <s:a> <s:param> <s:include> <s:debug> <s:date> <s:set>
控制标签 (Control Tag)
<s:if> <s:elseif> <s:else> <s:iterator>
UI标签(UI Tag)
<s:form> <s:textfield> <s:textarea> <s:submit> <s:select> <s:doubleselect>
Ajax标签( Ajax Tag)
<sx:datetimepicker>
使用datetimepicker日历控件,需要以下步骤:
1.在项目中引入struts2-dojo-plugin-2.1.8.jar 。
2. 导入<%@ tagib uri = "/struts2-dojo-tags" profix = " sx" %> 。
3. 在<head> 中添加 <sx:head parseContent = "true"/>。
4. 添加标签 <sx:datetimepicker name = "timer" label= "发表时间"/>。
JSTL(Java Page Standard Tag Library, JSP标准标签库)
JSTL主要用来实现逻辑控制。完成以下两个步骤才可以再JSP中使用JSTL:
1.下载JATL所需的jstl,jar 和 standard.jar,并将其添加到项目中 。
2.在JSP页面中添加标签指令:<%@ tagib uri = "http://java.sun.com/jsp/jstl/core" profix = " c" %>
<c:out/> <c:set/> <c:remove/> <c:forEach/ > <c:if/> <c:url/ > <c:param/> <c:import/>等等
<fmt:format/> <fmt:formatNumber/>格式化时间和日期
以上是关于Ognl 和 EL 和jstl区别的主要内容,如果未能解决你的问题,请参考以下文章
Struts标签Ognl表达式el表达式jstl标签库这四者之间的关系和各自作用