10.JSTL和EL

xiaoxiao2025-04-12  17

十. JSTL和EL

为什么需要EL

在JSP中使用Java脚本的局限

在JSP页面中嵌入大量的Java代码访问结构比较复杂的数据时代码烦琐,且经常需要强制类型转换

EL表达式使JSP的开发变得更加简单

${requestScope.employee.computer.manufacturer}

 

EL表达式简介 什么是EL Expression Language(表达式语言)EL的功能 替代JSP页面中数据访问时的复杂编码EL的特点 自动转换类型 EL得到某个数据时可以自动转换类型 使用简单 EL表达式语法6-1

${ EL expression }

通过变量名取值获取对象的属性值获取集合元素执行表达式EL表达式语法6-2

${变量名}

 

按照page → request → session → application的作用域顺序依次查找,找到即返回,最终找不到返回null

指定作用域

EL表达式语法6-3

获取对象的属性值

<%=  ( (User) request.getAttribute("user") ) .getName()  %>

 

点操作符

${user.name}

[ ]操作符

${user["name"]}

EL表达式语法6-4

获取集合元素-List

 

EL表达式语法6-5

获取集合元素-Map

EL表达式语法6-6

执行表达式

关系操作符

逻辑操作符

empty操作符

EL隐式对象

 

EL隐式对象介绍

EL表达式的综合应用

 

为什么使用JSTL

EL表达式封装了数据访问的功能,而JSTL标签库则封装了逻辑控制、循环控制以及数据格式化等功能,二者结合使用才能完整实现动态页面的开发需求

 

什么是JSTL

什么是JSTL

JSP标准标签库(JSP Standard Tag Library)

 

JSTL通常会与EL表达式合作实现JSP页面的编码

 

JSTL的环境搭建

使用JSTL的步骤

引入JSTL的jar文件和标签库描述符文件在JSP页面添加taglib指令使用JSTL标签

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

JSTL标准标签库介绍

通用标签4-1

set:设置指定范围内的变量值

将value值存储到范围为scope的变量variable中

<c:set  var="variable"  value="value"  scope="scope" />

将value值设置到对象的属性中

<c:set  target="target"  property="property"  value="value" />

示例:

// 在Servlet或JSP中设置JavaBean

User  user = new  User();

request.setAttribute("user",  user);

 

// 在JSP中修改JavaBean的属性值

<c:set target="${user}" property="name" value="defaultName" />

 

通用标签4-2

out:计算表达式并将结果输出显示

不指定默认值

<c:out  value="value" />

指定默认值

<c:out  value="value"  default="default" />

示例:

// 在Servlet或JSP中设置JavaBean

User  user = new  User();

request.setAttribute("user",  user);

 

// 在JSP中输出JavaBean的属性值

<c:out  value="${user.name}"  default="No UserName" />

通用标签4-3

out:计算表达式并将结果输出显示

转义特殊字符

通用标签4-4

<c:remove  var="variable"  scope="scope" />

 

小结

通用标签的使用

 

条件标签3-1

if:实现Java语言中if语句的功能

 

条件标签3-2

使用if标签判断是否登录

条件标签3-3

choose:实现if - else if - else语句的功能

迭代标签4-1

forEach:实现对集合对象的遍历

 

迭代标签4-2

迭代标签4-3

通过迭代标签遍历Map

迭代标签4-4

forEach:指定迭代的次数

 

总结

转载请注明原文地址: https://www.6miu.com/read-5028090.html

最新回复(0)