前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jstl、EL跟OGNL

jstl、EL跟OGNL

作者头像
粲然忧生
发布2023-10-12 09:23:30
1880
发布2023-10-12 09:23:30
举报
文章被收录于专栏:工程师的分享工程师的分享

这段时间学习了两种EL,和OGNL都是表达式,然后对两者的不同进行学习,在网上还搜到了询问两者不同的面试题,自己也决定好好的学习一下

jstl是JSP标签,有点像html的标签。 ognl与el功能类似,都是表达式语言。 ognl是在webwork2.0和struts2.x中取代el的。 OGNL是Object Graphic Navigation Language(对象图导航语言)的缩写,OGNL是一个开源项目,读者可以访问其官方站点以获得源代码和相关资料。OGNL是一种功能强大的EL(Expression Language,表达式语言),可以通过简单的表达式来访问Java对象中的属性。

从这段话上我们貌似感觉OGNL比EL强大,可以取代EL,但实际应用却不是这样

一般来说

jstl标签搭配el用,需要在jsp头部配置,jstl用来取值,而el用来展示。el也可直接取值展示作用域里对象变量。 struts标签一般与ognl配合使用

但是

Struts推荐使用功能更加强大的Ognl表达式。El可以完成的功能,Ognl也可以,El不能完成的功能,Ognl也可以。 我们可以有两种解决方案:(其实还有一个重要因素是整个项目的风格)

1.使用struts2自带的标签库,jsp中使用ognl进行操作。

2.不是用struts2自带的标签库,jsp直接结合jstl+el进行操作。

jsp2.0中默认启动对el表达式的支持的。但从Struts2.0.11起,Struts2标签库将不再支持El表达式。

struts2.0.11版本不支持el,因而以前在低版本下写和程式将不能正常运行:

关于这个方面,可以参考http://baiyan425.blog.51cto.com/1573961/777413

再说说两者的区别:

其实除了语法不一样外,最主要的是两点

1.OGNL是通常要结合Struts 2的标志一起使用,如<s:property value="#xx" /> struts页面中不能单独使用,el可以单独使

用 ${sessionScope.username}

2.EL表达式能用在内部文件的js里

关于这两点可以参考http://blog.csdn.net/lidiansheng/article/details/7902400

当然最后还是要贴出来两者的用法

http://blog.csdn.net/sd0902/article/details/8393099

再具体的用法希望读者自己去搜一下,有很多,其中比较关键的是$在jsp中只能用于EL,一部分原因是不能跟OGNL冲突

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档