关于ognl+struts-tag与el+jstl互相代替,以及el和jstl的学习笔记
昨晚在晚上看了许多文章,众多大牛说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的学习笔记相关推荐
- JSTL核心标签超详细详解(学习笔记,一文看懂)
JSTL 一.认识JSTL表达式 1.什么是JSTL JSTL是Java server pages standarded tag library的缩写,即java标准标签库 JSTL百度百科 JSTL ...
- js去el的map_转:el表达式获取map对象的内容 js中使用el表达式 js 中使用jstl 实现 session.removeattribute...
原文链接: 总结: el表达式获取map对象的内容 后端: HashMap map1 = new HashMap(); map1.put("key1","lzsb&quo ...
- 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 ...
- 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"%> ...
- Java Web学习笔记11:JSTL与EL
文章目录 一.JSTL概述 二.EL概述 1.为什么需要EL? 2.什么是EL表达式? (1)EL的含义
- JSP、EL和JSTL-学习笔记03【EL介绍和运算符、EL获取域中存储的数据】
Java后端 学习路线 笔记汇总表[黑马程序员] JSP.EL和JSTL-学习笔记01[JSP基础语法] JSP.EL和JSTL-学习笔记02[MVC] JSP.EL和JSTL-学习笔记03[EL介绍 ...
- java值栈_Struts2学习笔记-Value Stack(值栈)和OGNL表达式
只是本人的Struts2学习笔记,关于Value Stack(值栈)和OGNL表达式,把我知道的都说出来,希望对大家有用. 一,值栈的作用 记录处理当前请求的action的数据. 二,小例子 有两个a ...
- 【JSTL】JSP 标准标签库JSTL学习
JSTL 标签库 1.什么是JSTL 标签库 JSTL 是apache 对EL 表达式的扩展(也就是说JSTL 依赖EL),JSTL 是标签语言!JSTL 标签使用以来非常方便,它与JSP 动作标签一 ...
- Struts学习笔记--(二)Struts基础
本文为how2java Struts教程的学习笔记,原教程链接如下:http://how2j.cn/k/struts/struts-jsp/55.html 中文问题 修改addProductjsp 修 ...
- Struts学习笔记总结
Struts学习笔记总结 一.Struts是由Apache开源联盟提供的一套用于构建 Java web应用程序的框架,它的目标是希望分离Web程序的表示层.控制层和模型层,即MVC框架,使程序员将更多 ...
最新文章
- 实验六 html网页设计,网页设计.html · 谢泽华/面向对象与软件工程实验二:网页模仿 - Gitee.com...
- LeetCode215:数组中第K个最大元素
- 奇葩面试经历分享:喊价25K,HR 却给了30K!
- python验证卡普耶卡(D.R.Kaprekar)6174猜想
- 前端学习(2505):小游戏设计
- 【NLP】毕设学习笔记(八)“前馈 + 反馈” = 循环神经网络RNN
- 微课|中学生可以这样学Python(2.2.1节):算术运算符
- 业界分享 | 美团到店综合知识图谱的构建与应用
- cocos2d JS 鼠标响应事件
- linux php执行ci框架,PHP CI框架学习之路径访问
- C++ 变量在内存中的分布
- 10bit灰阶测试图_我可能买的是一块假10bit显示器以及一块假8bit显示器?
- 大数据—数据收集系统介绍(Flume,Sqoop)
- python-django(一)
- matlab高斯白噪声功率谱密度,matlab-正弦波-高斯白噪声-均匀白噪声-功率谱密度-自相关函数.doc...
- android优化启动时间
- c语言实验3报告及答案,C语言编程实验报告3
- XNA学习笔记(5)-调节刷新率(framerate)
- 算法模型是什么意思,算法模型定义介绍
- ts的类型any与unknown
热门文章
- mysql null 排前面_Mysql实现null值排在最前/最后的方法示例
- ci框架 mysql_CodeIgniter (CI)框架中的数据库查询汇总
- class转java_[拒绝套路,纯干货]这一百多道 Java 基础问题你掌握了吗?
- 组装电脑配置单报价_哪家电脑店胆子这么大,竟敢用这种方式组装电脑,客户傻得无辜!...
- python 自动化办公 案例_python自动化工具之pywinauto实例详解
- 泰安服务器维护公司,神云 泰安服务器
- android fragment activity 交互,Android基础之Fragment与Activity交互详解
- 概率论—随机变量的数字特征、大数定律及中心极限定理
- 项目3:(4)点到直线的距离以及夹角
- LabVIEW实现CRC校验