其实,在学习网站开发过程中,其实不掌握ONGL也是可以的。我们完全可以使用JSTL和EL来代替OGNL。

  只要存在要往页面传输内容,我们直接把对象放在request范围即可,这样我们就可以在jsp中使用EL取出该值。

  如果我们需要在页面中生成一个集合,要判断某个对象是否在集合中,或者要调用对象的方法,这时候我们就可以使用ONGL。但是我们遇到的这种需求是比较少的,我们可以使用灵活的方法去解决这个问题。

  这样,JSTL和EL已经能够满足我们的需要,而且JSTL是sun公司的规范技术。

  如果你以前做了一些使用了jstl的模块,假设你现在要做一个新的项目,并且存在跟之前项目功能相似的模块,这时候你可以复制之前jstl的代码,改一改基本就可以使用了。如果说,之前的项目是用SSH做的,用的是OGNL,现在要做的项目必须采用springMVC + spring + mybatis来实现,那么之前写的代码就不能复制过来使用了。也就是说,使用sun公司的规范技术,更具有通用性。

  

  毕竟大部分程序员都能够掌握jstl,如果说有一个程序员对struts2不了解,又临时得调到struts2工作组里面,若页面使用的是JSTL和EL表达式来完成,那么基本也没什么问题。但是如果使用OGNL,那么这位同事估计要一段时间来适应,不知道怎么使用,也就是说段时间不能干活的。

  如果OGNL没有了解深入,使用起来也困难。

  因此,鉴于JSTL和EL表达式基本上能够完成OGNL的功能,加上OGNL的难度稍大,我认为,即使不会使用OGNL也不成大问题。当然,萝卜青菜各有所爱,有的项目经理喜欢用ognl,我们也无法避免,了解是一种好事,否则“书到用时方恨少”就坏了。

到底该不该熟悉掌握struts2的ONGL呢?的更多相关文章

  1. Struts2笔记——ONGL表达式语言

    OGNL是ObjectGraphic Navigation Language(对象图导航语言)的缩写,它是一个开源项目. Struts 2框架使用OGNL作为默认的表达式语言. ----------- ...

  2. Struts2的值栈和对象栈

    ValueStack 如何得到值栈: 如何将对象存入值栈: 让值栈执行表达式来获得值: 在JSP中跳过栈顶元素直接访问第二层: 在JSP中访问值栈对象本身(而不是它们的属性) ActionContex ...

  3. 开发一个struts2的实例

    前面一篇博客(实现struts2框架)带大家对基于mvc业务流程熟悉了一下,现在我们就用对mvc实现最好的框架struts2来开发一个应用实例.虽然现在MyEclipse8.5以上版本已经开始支持St ...

  4. Struts2第十三篇【防止表单重复提交】

    回顾防止表单重复提交 当我们学习Session的时候已经通过Session来编写了一个防止表单重复提交的小程序了,我们来回顾一下我们当时是怎么做的: 在Servlet上生成独一无二的token,保存在 ...

  5. Struts2【拦截器】就是这么简单

    什么是拦截器 拦截器Interceptor.....拦截器是Struts的概念,它与过滤器是类似的...可以近似于看作是过滤器 为什么我们要使用拦截器 前面在介绍Struts的时候已经讲解过了,Str ...

  6. 由struts2中配置使用servlet引发的思考和复习

    Struts2拦截器到底拦截了什么? 关于struts2中的拦截器,首先再次理解其实只能过滤其中访问的action的映射!再者,因为struts中的action其实就是起到替代servlet作用的,所 ...

  7. struts2学习二:Tomcat的部署目录和访问路径问题

    1:idea中配置tomcat后,那么最终的web工程发布到哪里去了?为什么在访问路径中不加工程名就可以访问? 1.1:因为tomcat有段时间没接触了,先回顾下tomcat的目录结构吧? 如图所示: ...

  8. 程序世界系列之-struts2安全漏洞引发的安全杂谈(上)

    目录: 1.讨论关于struts 安全问题. 2.黑客文化. 3.如何降低安全漏洞的出现. 4.忠告建议. 题记: 这篇文章本来很早应该和大家见面的,中间由于个人原因调整了系列文章发布时间,实属罪过. ...

  9. valuestack,stackContext,ActionContext.之间的关系以及如何存取数值的

      2013-03-15 10:54 1722人阅读 评论(1) 收藏 举报  分类: J2EE 版权声明:本文为博主原创文章,未经博主允许不得转载. 三者之间的关系如下图所示: ActionCont ...

随机推荐

  1. Cocos2d-x加速度计实例:运动的小球

    下面我们通过一个实例介绍一下如果通过层加速度计事件实现访问加速度计.该实例场景如下图所示,场景中有一个小球,当我们把移动设备水平放置,屏幕向上,然后左右晃动移动设备来改变小球的位置. 下面我们再看看具 ...

  2. iMAC——关闭自动弹出手机照片

    有时当自己的iPhone手机插入一台iMAC电脑时,会自动弹出自己iPhone手机的照片. 这相当影响人的隐私等等,所以顺便将方法(参考网络的)小记一篇博客. 一.OS X 10.10以上用户解决办法 ...

  3. iOS开发——返回特定的控制器

    用导航控制器返回到上一页和返回到根控制器有其自带方法. 返回到特定的控制器的核心代码: popToViewController用法 方式一,不推荐[self.navigationController ...

  4. xcode-重新打开欢迎界面

    嫌不够逼格关掉 关掉又后悔= = 重新打开方式为: command+shift+1 然后把左下勾上就可以每次都打开了 一个字,折腾

  5. echarts标准饼图解读(一)——提示框(tooltip)配置

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. CAF(C++ actor framework)使用随笔(unbecome与keep_behavior用法)

    看usermanual(使用随笔一里面有)看到差不多一半的时候,这个keep_behavior与unbeacome的结合引起了我的注意.(这是为什么呢?) 因为它的示例代码写的太简单了!我真的没看太懂 ...

  7. Paying for upgrades, by Bob Arnson

    Following content is reprinted from here, please go to the original website for more information. Au ...

  8. 从 Java 代码逆向工程生成 UML 类图和序列图

    from:http://blog.itpub.net/14780914/viewspace-588975/ 本文面向于那些软件架构师,设计师和开发人员,他们想使用 IBM® Rational® Sof ...

  9. 获取当前<script>节点

    /* get current JavaScript dom object. */ var all_js = document.getElementsByTagName("script&quo ...

  10. 【转】M0,M1,M2,M3,M4基本概念

    在金融学中的M1,M2,M3,M4都是货币层次的划分M0= 流通中的现金;M1=M0+ 个人信用卡循环信用额度+ 银行借记卡活期存款+ 银行承兑汇票余额+ 企业可开列支票活期存款;M2=M1+ 个人非 ...