EL表达式与JSTL标签

目录

一、EL表达式

1、EL操作符

2、EL功能

3、EL访问作用域

二、JSTL标签

1、JSTL使用步骤

2、JSTL标签分类

3、JSTL标签的使用


一、EL表达式

Expression Language表达式语言,用于简化JSP页面内的Java代码主要功能:获取数据

语法: 

${expression}

获取域中存储的key为brands的数据

1、EL操作符

1、操作符“.”

获取对象的属性,例如:${news.title}

2、操作符“[ ]

获取对象的属性,例如:${news["title"]}

获取集合中的对象,例如:${newsList[0]}

EL运算符

运算符说明

( )

改变执行的优先级,例如${3*(4+5)}

+,-,*,/,%

算术运算符,例如${3+2}

==,!=,>,>=,<,<=

关系运算符,例如${a==b}${a eq b}

&&,||,!

逻辑运算符,例如${true&&false}

?:

条件运算符,例如${a>b?1:2}

empty

用于检测变量名是否为空,是否等于NULL,例如${empty name}

关系运算符示例结果

== eq

${5 == 5}${5 eq 5}

true

!= ne

${5 != 5}${5 ne 5}

false

< lt

${3 < 5}${3 lt 5}

true

> gt

${3 > 5}{3 gt 5}

false

<= le

${3 <= 5}${3 le 5}

true

>= ge

${3 >= 5}${3 ge 5}

false 

2、EL功能

取得JavaBean对象的属性

${news.title}

 取得数组、List、Map类型对象的元素

${list[0]}

 使用各类运算符对原始数据进行简单处理

${totalRecordCount/pageSize}

 屏蔽一些常见的异常

${username}

 能实现简单的自动类型转换

${news}相当于(News)request.getAttribute("news")

3、EL访问作用域

两种方式取数据:

使用Java小脚本:request.getAttribute("news");

使用EL表达式:${ news } 或者 ${ requestScope.news }

JavaWeb中的四大域对象:

作用域Java代码取值EL取值

请求作用域

request.getAttribute("news");

${ requestScope.news }

会话作用域

session.getAttribute("username");

${ sessionScope.username }

程序作用域

application.getAttribute("count");

${ applicationScope.count }

页面作用域

pageContext.getAttribute("userNum");

${ pageScope.userNum }

el表达式获取数据,会依次从这4个域中寻找,直到找到为止

二、JSTL标签

JSP标准标签库(Jsp Standarded Tag Library),使用标签取代JSP页面上的Java代码

1、JSTL使用步骤

1、下载jstl.jarstandard.jar

2、将这两个包复制到WEB-INF\lib目录

3、在JSP页面中添加指令

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

2、JSTL标签分类

标签库资源标识符前缀

核心标签库

http://java.sun.com/jsp/jstl/core

c

国际化/格式化标签库

http://java.sun.com/jsp/jstl/fmt

fmt

XML标签库

http://java.sun.com/jsp/jstl/xml

x

数据库标签库

http://java.sun.com/jsp/jstl/sql

sql

函数标签库

http://java.sun.com/jsp/jstl/functions

fn

核心标签库

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

国际化/格式化标签库

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

3、JSTL标签的使用

<c:out/>标签

语法:

value="value":需要输出显示的表达式
default="default":默认输出显示的值
escapeXml="true|false":是否对输出的内容进行转义

<c:out value="value" default="default" escapeXml="true|false" />

设置变量

var="name" :表示变量名称
value= "value":表示变量的值
scope="scope":存在的作用域

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

设置对象属性

value= "value":表示属性的值
target="target":表示对象
property="propertyName":表示对象的属性名称

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

<c:forEach/>标签

<c:forEach/>迭代标签:实现对集合的遍历

var="varName":集合中元素的名称
items="items":集合对象
varStatus="varStatus":当前循环的状态信息,例如循环的索引号

<c:forEach var="varName" items="items" varStatus="varStatus">
     ……
</c:forEach>

<c:if/>标签

<c:if/>条件标签:实现条件的判断

var="varName":判断的结果
scope="scope":判断结果存放的作用域

<c:if test="condition" var="varName" scope="scope">
         ……
</c:if>

使用JSTL构建URL

<c:url/>超链接标签

<c:url  value="url" />

<c:param/>参数标签

name="name":参数的名称
value="value":参数的值

<c:param name="name"  value="value"/>

<c:import/>导入标签

url="URL":导入资源的路径

<c:import url="URL" />

<fmt:formatDate/>标签

<fmt:formatDate/>格式化标签:实现格式化的日期和时间显示

value="date":时间对象
pattern="yyyy-MM-dd HH:mm:ss":显示格式

<fmt:formatDate  value="date"  pattern="yyyy-MM-dd HH:mm:ss"/>
标签名作用

<c:out />

输出文本内容到out对象,常用于显示特殊字符,显示默认值

<c:set/>

在作用域中设置变量或对象属性的值

<c:remove/>

在作用域中移除变量的值

<c:if/>

实现条件判断结构

<c:forEach/>

实现循环结构

<c:url/>

构造url地址

<c:param/>

url后附加参数

<c:import/>

在页面中嵌入另一个资源内容

<fmt:formatDate/>

格式化时间

<fmt:formatNumber/>

格式化数字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值