博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java之旅(三)--- JSTL和EL表情
阅读量:4325 次
发布时间:2019-06-06

本文共 2514 字,大约阅读时间需要 8 分钟。



        先给大家看一段JSP的代码。看看有什么感受?

<%       List
usELList = pageModel.getList(); for (ItELator
itEL=usELList.itELator(); itEL.hasNext();) { UsEL usEL = itEL.next();%>
<%=usEL.getUsELId() %> <%=usEL.getUsELName() %> <%=usEL.getContactTel()%> <%=usEL.getEmail() %> <%=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(usEL.getCreateDate()) %> <% } %>

       这就是掺杂着Java代码的JSP页面,它的不足之处显而易见:

       1jsp维护难度添加;

        2)出错提示不明白,不easy调试;
        3)分工不明白,美工人员还须要了解Java代码;
       上述三点,终于会添加程序的开发成本;

        解决上面的问题就出现了JSTL和EL表达式JSTL使JSP开发人员能够降低对脚本元素的需求,甚至能够不须要它们,降低代码工作量,界面更加简洁,便于维护,后台java人员和前端的美工人员能够分工合作,从而可提高团队开发的效率。

       那么到底什么是JSTL呢?什么是EL表达式呢?为什么每次说到JSTL都要说到EL表达式呢?它们两者到底是什么关系呢?又有什么差别呢?且看以下慢慢说来~

一、什么是JSTL

       JSTL是一个不断完好的开放源码的JSP标签库。

JSTL1.0由四个定制标记库(coreformatxml sql)和一对通用标记库验证器组成。

       (1)core 标记库提供了定制操作。通过限制了作用域的变量管理数据,以及运行页面内容的迭代和条件操作。它还提供了用来生成和操作 URL的标记。

        (2)format标记库定义了用来格式化数据(尤其是数字和日期)的操作;

        (3)xml库包括一些标记,这些标记用来操作通过XML表示的数据。

        (4) sql库定义了用来查询关系数据库的操作。

二、什么是EL表达式?

       EL表达式主要用于查找作用域中的数据,然后对它们运行简单操作。它不是编程语言,甚至不是脚本编制语言。

通常与 JSTL标记一起作用,能用简单而又方便的符号来表示复杂的行为。

       EL表达式的格式:用美元符号($)定界,内容包含在花括号({})中。比如: ${PageScope.UserName}

再次对此不再赘述。网上有非常多极为具体的使用教程。

三、EL表达式变量的作用域?

       EL隐含对象:pageScoperequestScopesessionScopeapplicationScope

作用域范围依次从小到大。

EL名称/ JSTL名称

有效范围

PageScope / Page

用户请求此页面过程

RequestScope / Request

用户的整个请求过程

SessionScope / Session

用户的整个会话期

ApplicationScope / Application

WEB应用程序运行期间

       

       ${username}不写明变量作用域时,默认按上述顺序查找变量,找到就返回,不再继续找。可是假设所有的范围都没找到,则返回null

假设写明作用域,则搜索步骤例如以下:

实例

说明

${ PageScope .UserName}

取得Page范围内的

UserName

${ RequestScope.UserName}

取得Request范围内的UserName

${

SessionScope.UserName}

取得Session范围内的UserName

${ ApplicationScope.UserName}

取得Application范围内的UserName

 

四、JSTLEL表达式有何差别?

1)功能:EL是用来显示数据的,功能跟<%=表达式%>一样。可是它的功能有限,如:针对于空给出默认的非空字符串输出,迭代循环数组元素等是无法实现的。

JSTL则弥补了上述问题。它经常使用来实现网页逻辑推断和迭代显示,功能跟<%程序代码%>一样。

所以,普通情况下,我们都会选择JSTL配合EL表达式一起使用,这样基本能够实现JSP中不出现Java代码。

2)配置:JSTLEL表达式都是自己定义标签,web server容器会把jsp 解析成servlet。在解析的过程中调用解析器,这个解析器集合就包括ELJSTL等解析器。

可是ELservlet标准,容器中都会集成所以我们在使用EL表达式时不须要引用不论什么东西;而JSTL则须要引入它的包方可使用。引入方法例如以下:使用taglib指令---用来指示这个JSP页面所使用的标签库<%@ taglib uri=" " prefix=" " %>

3)空值处理:当搜索所有范围后仍没有数据时。会返回NULL。可是EL表达式对此做出了优化。页面上显示空白,而不是打印输出NULL

JSTL则是优化的更为彻底,当返回NULL时,通过JSTL能够返回“无”。

 

如今,对JSTL和EL表达式有了基本了解了,事实上说白了就是一句话:两者结合,彻底消除JSP页面的Java代码。

版权声明:本文博主原创文章,博客,未经同意不得转载。

转载于:https://www.cnblogs.com/bhlsheji/p/4881972.html

你可能感兴趣的文章
cocos2d-x学习笔记
查看>>
MySql中的变量定义
查看>>
Ruby数组的操作
查看>>
hdu1181暴搜
查看>>
解码字符串 Decode String
查看>>
json学习笔记
查看>>
工具:linux 性能监控工具-nmon
查看>>
fatal error C1853
查看>>
Ural 1001 - Reverse Root
查看>>
玩转webpack之webpack的entry output
查看>>
java 操作mongodb查询条件的常用设置
查看>>
黑马程序员_java基础笔记(02)...java语言基础组成
查看>>
对innodb 拷贝文件实现数据库的方式(转)
查看>>
python知识点 2014-07-09
查看>>
FloatingActionButton的一点学习感悟
查看>>
ABAP CDS ON HANA-(10)項目結合して一つ項目として表示
查看>>
网站地址信息
查看>>
产品经理 - 登录 注册
查看>>
阶段3 2.Spring_01.Spring框架简介_03.spring概述
查看>>
阶段3 2.Spring_02.程序间耦合_1 编写jdbc的工程代码用于分析程序的耦合
查看>>