EL和JSTL使用介绍

目录

  • 一 EL和JSTL的作用
  • 二 EL表达式和JSTL间的关系
  • 二 EL表达式的作用
    • 基础:EL表达式的取值范围
      • 1)默认取值范围
      • 2)指定取值范围
    • 2.1 访问Bean的属性
      • 2.1.1 bean属性了解
      • 2.1.2 案例
    • 2.2 输出简单的运算效果
    • 2.3 获取请求的参数值
      • 案例
  • 三 JSTL介绍及使用
    • 3.1 JSTL介绍
    • 3.2 JSTL使用
      • 3.2.1 常用标签
        • if标签
      • choose标签
      • forEach标签
    • 3.3 JSTL运行原理

一 EL和JSTL的作用

  • 去掉jsp文件中的jav代码

二 EL表达式和JSTL间的关系

EL和JSTL使用介绍_第1张图片

  • 通过EL获取到数据之后交给JSTL处理,处理完之后,再将数据交给EL显示

二 EL表达式的作用

基础:EL表达式的取值范围

默认取值范围,是为了让开发者不用经常写范围,是为了简化EL表达式

1)默认取值范围

EL默认从如下四个对象(JSP中的部分隐含对象)中依次取值
- page
- request
- session
- application

2)指定取值范围

  • 指定在request中取值:requestScope.stu.name
  • 指定在session中取值:sessionScope.stu.name
  • 指定在page中取值:pageScope.stu.name
  • 制定在applicatio中取值:application.stu.name

2.1 访问Bean的属性

通过EL表达式访问属性都是通过bea属性来访问

2.1.1 bean属性了解

  • 和get/set对象的属性叫bean属性
  • 通过get/set反应出来的我们以为的属性叫bean属性
  • 去掉get并将首字母小写的属性是bean属性
  • Bean属性通常都和对象属性一致,也可以修改为不一致

2.1.2 案例


<p>姓名:${stu.name}p>

<p>年龄:${stu["age"]}p>

<p>课程Id:${stu.course.id}p>

2.2 输出简单的运算效果

基本上基本运算都支持,也使用了empty来进行判空运算


    <p>年龄+5${stu.age+5}p>
    <p>判断年龄是否在20~30之间:${stu.age>20 && stu.age<30}p>
    <p>判断student是否为空:${empty stu}p>

2.3 获取请求的参数值

${param.username}
等价于
request.getParameter("username");

${param.city}
等价于
request.getParameterValues("city");

案例


    <p>获取请求参数:${param.user}p>

三 JSTL介绍及使用

3.1 JSTL介绍

JSTL全称是JSP Standard Tag Library,即JSP标准标签库.是sun公司定义的一套标准,由Appache组织基于这套标准开发的一套标签库后又转给sun公司,被称为JSTL,成为了Javaee5.0的核心

3.2 JSTL使用

  1. 使用maven导入jar包

<dependency>
    <groupId>jstlgroupId>
    <artifactId>jstlartifactId>
    <version>1.2version>
dependency>
  1. 在jsp文件中导入要使用的标签库
    EL和JSTL使用介绍_第2张图片

  2. 在JSP文件中导入标签库

<%@page pageEncoding="utf-8"%>

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

3.2.1 常用标签

if标签


<p>
    
    <c:if test="${stu.sex == 'M'}">c:if>
    <c:if test="${stu.sex == 'F'}">c:if>
p>

choose标签

<c:choose>
    
    <c:when test="${stu.sex == 'M'}">c:when>
    
    <c:when test="${stu.sex == 'F'}">c:when>
    
    <c:otherwise>不男不女c:otherwise>
c:choose>

forEach标签

<h2>3. forEach标签h2>

<p>
    <c:forEach items="${stu.intrests}" var="intrest">
        ${intrest } 
    c:forEach>
p>

结果展示:

EL和JSTL使用介绍_第3张图片

3.3 JSTL运行原理

EL和JSTL使用介绍_第4张图片

  • 请求经由servlet转发至jsp后,遇到了遇到使用jstl标签,根据jsp文件引用的jsp标准标签库引用的语句,之后再由引用哪一个标签,找到标签库中的对应的标签解析语句,调用其中的doTag()方法,翻译成对应的java代码.

你可能感兴趣的:(EL,JSTL)