为什么要使用JSTL和EL表达式?

        我们下面通过一个表格展示部门员工信息,对比看JSP和JSTL的不同。

java uel 表达式语法 java el表达式解析_javaweb


        同样是循环生成一个table数据,使用传统jsp:

java uel 表达式语法 java el表达式解析_java uel 表达式语法_02


        同样是循环生成一个table数据,使用JSTL方式:

java uel 表达式语法 java el表达式解析_javaweb_03

EL全称是Expression Language,即表达式语言。

使用宽松的类型转换,简化对变量和对象的访问。
EL的语法结构为java uel 表达式语法 java el表达式解析_javaweb_04{emp.name}
以上变量emp会遵循从page、request、session、application中依次寻找,
如果找到,便不再继续寻找;如果没有找到,则返回null
也可以给变量制定寻找的范围,与以上四个内置对象相对应的属性范围在EL中的书写格式为:pageScope,requestScope,sessionScope,applicationScope
EL表达式中也可以使用算术运算符、关系运算符、逻辑运算符。
例如:

${4+5} 
${3<4}
${3!=4&&5>6}

EL的使用:

java uel 表达式语法 java el表达式解析_Java_05


以上EL其实就是等同于<%=request.getAttribute(“age”)%>。但如果这样:${sessionScope.age},从session范围中,便获取不到。

JSTL全称是JSP Standard Tag Library,即JSP标准标签库

EL表达式在输出信息方面简化了JSP的复杂度,但是它无法控制流程、无法处理复杂的逻辑。是否有一种技术,可以不必书写Java代码,又能控制流程呢?
JSTL提供了一种不需要嵌入Java代码片段,就可以开发复杂显示页面的途径
JSTL提供了通用、条件、循环、格式化、数据库操作等标签
使用JSTL标签,要在指令上加上如下标签指令:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

JSTL标签——通用标签
<c:out>
作用是做输出,功能类似于<%=变量%>、java uel 表达式语法 java el表达式解析_前端_06{变量}” />
<c:set>
作用是定义变量,将变量的值存在某个JSP范围中,或者是JavaBean的属性中。
<c:remove>
作用与set相反,从某个范围中移除一个变量。

JSTL标签——条件标签

<c:if>

作用是用来判断

<c:if test= “判断条件”>

</c:if>

java uel 表达式语法 java el表达式解析_Java_07


JSTL标签——迭代标签

<c:forEach>

作用是对于包含多个对象的集合进行迭代,跟Java中的逐元循环相似

<c:forEach [var= “当前元素”] items= “集合”>

</c:forEach>

java uel 表达式语法 java el表达式解析_javaweb_08


JSTL标签——格式化

<fmt:formatDate value="${日期}" pattern=“yyyy-MM-dd” />

<fmt:parseDate value="日期字符串"pattern=“yyyy/MM/dd”/>

java uel 表达式语法 java el表达式解析_java_09


JSTL标签和EL表达式总结:

  • JSTL与EL搭配使用,可以简化视图层的开发。
  • 需要掌握EL表达式的用法。
  • 需要掌握常用的如通用、条件、迭代、格式化等标签。
  • 数据库标签因为后来使用了MVC架构设计,所以在实际使用中不会使用显示层技术访问数据库,所以数据库标签已经没有学习的必要。