昨晚在晚上看了许多文章,众多大牛说OGNL性能不行云云,乍一看似乎惨不忍睹,如下图:

于是考虑是否能使用EL+JSTL代替实现前台的标签。

以最近测试用的简单留言板的查看文章页面为例,以下皆省略getter,setter方法:

ViewArticle:

public class ViewArticle extends ActionSupport {

    private static final long serialVersionUID = 77L;    private ArticleService as;    private int page = 1;

    @Override    public String execute() throws Exception {        ActionContext ctx = ActionContext.getContext();        ctx.put("articles", as.getAllArticle(page));        return SUCCESS;    }

前台页面,OGNL+Struts-tags实现:

<table>

  <s:iterator value="#request.articles" id="a" status="s">            <tr>                <td><s:property value="#s.index"/></td>                <td class="title"><s:property value="#a.title"/></td>                <td class="content"><s:property value="#a.content"/> </td>                <td class="username"><s:property value="#a.user.username"/></td>                <td><s:a action="deletePro?id=%{#a.id}">删除</s:a></td>            </tr>    </s:iterator></table>

EL+JSTL实现:

<table>

   <c:forEach items="${articles}" var="a" varStatus="s">            <tr>                <td><c:out value="${s.index}"/></td>                <td class="title"><c:out value="${a.title}"/></td>                <td class="content"><c:out value="${a.content}"/></td>                <td class="username"><c:out value="${a.user.username}"/><br></td>                <td><a href="deletePro?id=${a.id}">删除</a></td>            </tr>     </c:forEach></table>

可以看出,两者的复杂度和可读性并没有多大的差别,可能我这个Demo比较简单,从代码上来看EL+JSTL并没有简洁多少,不过Struts-Tgas若不使用simple风格的话,自动生成的HTML代码有点惨不忍睹,从生成的代码简介角度来看,我并不很倾向于使用Strust-Tags。

但是Sturts-Tags在国际化方面有着很大的优势,如下图:

<s:text name="username"/><s:text name="password"/>

可以很方便的读取出国际化文件中的资源,而不使用此方法的话要如何实现还没有深入研究。

考虑到之前的ONGL效率问题,以及EL和JSTL的官方性,在之后的项目中可能更加倾向于使用EL+JSTL的方式构建前台页面。

转载于:https://www.cnblogs.com/qwangwei/p/4997940.html

关于ognl+struts-tag与el+jstl互相代替,以及el和jstl的学习笔记相关推荐

  1. JSTL核心标签超详细详解(学习笔记,一文看懂)

    JSTL 一.认识JSTL表达式 1.什么是JSTL JSTL是Java server pages standarded tag library的缩写,即java标准标签库 JSTL百度百科 JSTL ...

  2. js去el的map_转:el表达式获取map对象的内容 js中使用el表达式 js 中使用jstl 实现 session.removeattribute...

    原文链接: 总结: el表达式获取map对象的内容 后端: HashMap map1 = new HashMap(); map1.put("key1","lzsb&quo ...

  3. Invalid byte tag in constant pool: 19 与 javax/el/ELManager问题解决

    Invalid byte tag in constant pool: 19 与 javax/el/ELManager问题解决 参考文章: (1)Invalid byte tag in constant ...

  4. Can not find the tag library descriptor for http://java.sun.com/jsp/jstl/

    jsp页面引入外部的标签<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> ...

  5. Java Web学习笔记11:JSTL与EL

    文章目录 一.JSTL概述 二.EL概述 1.为什么需要EL? 2.什么是EL表达式? (1)EL的含义

  6. JSP、EL和JSTL-学习笔记03【EL介绍和运算符、EL获取域中存储的数据】

    Java后端 学习路线 笔记汇总表[黑马程序员] JSP.EL和JSTL-学习笔记01[JSP基础语法] JSP.EL和JSTL-学习笔记02[MVC] JSP.EL和JSTL-学习笔记03[EL介绍 ...

  7. java值栈_Struts2学习笔记-Value Stack(值栈)和OGNL表达式

    只是本人的Struts2学习笔记,关于Value Stack(值栈)和OGNL表达式,把我知道的都说出来,希望对大家有用. 一,值栈的作用 记录处理当前请求的action的数据. 二,小例子 有两个a ...

  8. 【JSTL】JSP 标准标签库JSTL学习

    JSTL 标签库 1.什么是JSTL 标签库 JSTL 是apache 对EL 表达式的扩展(也就是说JSTL 依赖EL),JSTL 是标签语言!JSTL 标签使用以来非常方便,它与JSP 动作标签一 ...

  9. Struts学习笔记--(二)Struts基础

    本文为how2java Struts教程的学习笔记,原教程链接如下:http://how2j.cn/k/struts/struts-jsp/55.html 中文问题 修改addProductjsp 修 ...

  10. Struts学习笔记总结

    Struts学习笔记总结 一.Struts是由Apache开源联盟提供的一套用于构建 Java web应用程序的框架,它的目标是希望分离Web程序的表示层.控制层和模型层,即MVC框架,使程序员将更多 ...

最新文章

  1. 实验六 html网页设计,网页设计.html · 谢泽华/面向对象与软件工程实验二:网页模仿 - Gitee.com...
  2. LeetCode215:数组中第K个最大元素
  3. 奇葩面试经历分享:喊价25K,HR 却给了30K!
  4. python验证卡普耶卡(D.R.Kaprekar)6174猜想
  5. 前端学习(2505):小游戏设计
  6. 【NLP】毕设学习笔记(八)“前馈 + 反馈” = 循环神经网络RNN
  7. 微课|中学生可以这样学Python(2.2.1节):算术运算符
  8. 业界分享 | 美团到店综合知识图谱的构建与应用
  9. cocos2d JS 鼠标响应事件
  10. linux php执行ci框架,PHP CI框架学习之路径访问
  11. C++ 变量在内存中的分布
  12. 10bit灰阶测试图_我可能买的是一块假10bit显示器以及一块假8bit显示器?
  13. 大数据—数据收集系统介绍(Flume,Sqoop)
  14. python-django(一)
  15. matlab高斯白噪声功率谱密度,matlab-正弦波-高斯白噪声-均匀白噪声-功率谱密度-自相关函数.doc...
  16. android优化启动时间
  17. c语言实验3报告及答案,C语言编程实验报告3
  18. XNA学习笔记(5)-调节刷新率(framerate)
  19. 算法模型是什么意思,算法模型定义介绍
  20. ts的类型any与unknown

热门文章

  1. mysql null 排前面_Mysql实现null值排在最前/最后的方法示例
  2. ci框架 mysql_CodeIgniter (CI)框架中的数据库查询汇总
  3. class转java_[拒绝套路,纯干货]这一百多道 Java 基础问题你掌握了吗?
  4. 组装电脑配置单报价_哪家电脑店胆子这么大,竟敢用这种方式组装电脑,客户傻得无辜!...
  5. python 自动化办公 案例_python自动化工具之pywinauto实例详解
  6. 泰安服务器维护公司,神云 泰安服务器
  7. android fragment activity 交互,Android基础之Fragment与Activity交互详解
  8. 概率论—随机变量的数字特征、大数定律及中心极限定理
  9. 项目3:(4)点到直线的距离以及夹角
  10. LabVIEW实现CRC校验