10.JSTL和EL

十. JSTL和EL

  1. 为什么需要EL

在JSP中使用Java脚本的局限

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

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

${requestScope.employee.computer.manufacturer}

 

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

${ EL expression }

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

${变量名}

 

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

指定作用域

  1. EL表达式语法6-3

获取对象的属性值

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

 

点操作符

${user.name}

[ ]操作符

${user["name"]}

  1. EL表达式语法6-4

获取集合元素-List

 

  1. EL表达式语法6-5

获取集合元素-Map

  1. EL表达式语法6-6

执行表达式

关系操作符

逻辑操作符

empty操作符

  1. EL隐式对象

 

  1. EL隐式对象介绍

  1. EL表达式的综合应用

 

  1. 为什么使用JSTL

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

 

  1. 什么是JSTL

什么是JSTL

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

 

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

 

  1. JSTL的环境搭建

使用JSTL的步骤

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

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

  1. JSTL标准标签库介绍

  1. 通用标签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" />

 

  1. 通用标签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" />

  1. 通用标签4-3

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

转义特殊字符

  1. 通用标签4-4

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

 

  1. 小结

通用标签的使用

 

  1. 条件标签3-1

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

 

  1. 条件标签3-2

使用if标签判断是否登录

  1. 条件标签3-3

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

  1. 迭代标签4-1

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

 

  1. 迭代标签4-2

  1. 迭代标签4-3

通过迭代标签遍历Map

  1. 迭代标签4-4

forEach:指定迭代的次数

 

  1. 总结

发布了65 篇原创文章 · 获赞 15 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/kxindouhao5491/article/details/83504036