JAVAWEB学习(10) - EL表达式和JSTL

EL表达式和JSTL

一、EL表达式

1.1. EL表达式是什么

是一套简单的运算规则,用于给jsp标签的属性赋值,也可以脱离jsp标签,直接使用。

1.2. EL表达式的使用

1.2.1. 读取bean的属性值

javabean指的是一个符合如下要求的Java类:

public class xxx{
    public xxx(){}
    //最好实现Serializable接口
    //有一些属性及对应的get/set方法
}
  1. 方式一 ${user.username}

    • 容器依次从pageContext–>request–>session–>application中查找绑订名为"user"的对象,找到之后,调用该对象的getUsername方法,然后输出该方法的结果.

    • 会将null转换成""输出。

    • 如果找不到对应的对象,不会报空指针异常。

    • 可以使用"pageScope,requestScope,sessionScope,applicationScope"来指定查找范围,比如:

      ${sessionScope.user.username}
      
  2. 方式二 ${user['username']}

    • []里面允许使用绑订名,比如${user[s1]}
    • []里面允许使用从0开始的下标(整数),用来读取数组中的某个元素。

1.2.2 EL表达式的运算

  • 算术运算:+,-,*,/,%

    +只能求和

  • 关系运算:>,>=,<,<=,==,!=

  • 逻辑运算:&&,||,!

  • empty运算:empty

1.2.3. 读取请求参数值

  1. ${param.username}等价request.getParameter("username")
  2. ${paramValues.city}等价request.getParameterValues("city")

二、JSTL

2.1. JSTL是什么

apache开发的一套jsp标签,后天捐献给了sun,sun将其命名为jstl

2.2. 如何使用JSTL

2.2.1. 导包

<dependency>
	<groupId>jstl</groupId>
	<artifactId>jstl</artifactId>
	<version>1.2</version>
</dependency>

2.2.2. 使用tablib指令来导入要使用的标签

<%@ taglib uri="" prefix="" %>

uri属性用来指定要导入的标签的命名空间

命名空间是为了区分同名的元素,在元素前添加的一段说明,通常是一个域名

prefix属性用来指定命名空间的别名

2.2.3. 核心标签

  • if标签

    1. 语法

      <c:if test="">
      	xxxx
      </c:if>
      
    2. 当test属性值为true时,执行标签体的内容,test属性值可以使用el表达式来赋值

    3. var属性指定绑定名,scope属性指定绑定范围(可以使page,request,session,application)

  • choose标签

    1. 语法

      <c:choose>
      	<c:when test="">
          </c:when>
          <c:otherwise>
          </c:otherwise>
      </c:choose>
      
    2. when可以出现一次或者多次,表示一个分支(相当于一个if语句)

      当test属性值为true时,执行标签体的内容

    3. otherwise可以出现0次或者一次,表示例外

  • forEach 标签

    1. 语法

      <c:forEach items="">
      
      </c:forEach> 
      
    2. items指定要遍历的集合或者数组,可以使用el表达式来赋值

    3. var属性指定绑定名,绑定范围固定是pageContext

      该标签每次从集合或者数组中取一个元素,然后将该元素绑定到pageContext上

    4. varStatus属性指定绑定名,绑定范围固定是pageContext

      绑定值是一个特殊的对象,该对象提供了一些方法,可以通过这些方法来获得当前遍历的状态:

      • getIndex():用来获得当前正在被遍历的元素的下标,下标从0开始
      • getCount():用来获得当前是第几次遍历

猜你喜欢

转载自blog.csdn.net/yisany_Q/article/details/83471922