EL&JSTL标准标签库

EL表达式

EL(Expression Language),表达式语言,是包含在 JAVA EE平台中的其中一种技术,主要的目的是为了能够简化开发者在页面中的一些代码。特点是非常简洁,易懂

一.基本使用

基本语法:

${}

包含的内容:

通过变量名取值

${变量}

获取对象的属性值

${对象名.属性名}

获取集合元素

${对象名.size()} //调用方法

${对象名[索引]} //获取集合中索引的值

${map集合对象名["key"]} //获取到map 集合中的key所应的value

执行表达式

//算数运算

${ + - * / %}

/:可以使用div来替代

%:可以使用mod方式替代

//逻辑运算符

&&(and) ||(or) !(not)

//关系运算符 >(gt) =(ge) <=(le) !=(ne) ==(eq)

//empty运算符 empty:代表判断元素是否为null或者是是否 包含元素

not empty:代表代表判断元素是否不为null 或者是是否不包含元素

获取作用域中的内容以及参数的内容和页面的内容

 

作用域的访问对象

正常情况下,在使用EL表达式时,需要在表达式 中添加对应的作用域,例如 ${sessionScope.xxx},如果我没有书写作用域访 问对象,此时,EL表达式就会从page向requet 中查询,如果request没有对应的值就会找到 session查询,session如果范围内也没有,就会 最后找到application,如果几个作用域都不包含 要查找的值或对象,就会返回null状态。此时如 果我们调用某个对象的某个属性或方法,此时EL 表达式如果没有找到对象就会直接输出空白。

参数访问对象

param相当于是在页面中调用了 request.getParameter("")来获取参数中的内 容。 paramValues相当于在页面中调用了 request.getParameterValues("")来获取同名对 象的多个值,返回一个数组类型

JSP隐式对象

可以通过pageContext对象获取到该对象中的某 个值,同时还可以获取到页面中衍生出的各类内 置对象,例如可以通过 pageContext.request.contextPath获取到当前 项目的上下文路径。

JSTL(Java Server Page Standard Tag Library),标 准标签库。是为了能够提高JAVA WEB开发的效率以及维护性。

在JSTL中包括两种常用标签库内容:

核心标签:

核心标签库是整个JSTL中最常用的部分,主要由一下几部分组成:基本输入输出,流程控制,迭代操作和URL操作。负责Web应用的常见工作,如:循环,表达式赋值,基本输入输出等

I18N格式标签库

用来格式化显示数据的工作 如:对不同区域的日期格式化等。

核心标签库:

步骤一:导入jstl的依赖

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

步骤二:在使用该类的页面中添加指令

//格式化库
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
//核心库
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

步骤三:使用标签库

<c:set var="变量名" value="值"scope="request|session|application"
/>
<c:set var="num" value="100" />
// 将一个对象中的属性进行修改
// target:代表要修改的对象
// property:要修改的对象中的属性
// value:要修改的属性值
<c:set target="${userInfo}" property="username" value="zhangsan" />

步骤四:输出内容:

<c:out value="${num}" />
<%--
value:代表要输出的内容,如果直接
写了内容,就会按照普通输出的方式显示在
页面上
default;如果没有找到对应的变量,
就会采用default作为值输出
--%>

删除属性:

<c:remove var="变量" />

条件标签:

<c:if test="条件表达式">
</c:if>

//if表达式是没有else的相关操作的,如果需要多层判断,则需要多谢一些if的语法

<c:if test="${empty userInfo}">
您还没有登录!
</c:if>
<c:if test="${not empty userInfo}">
您好,${userInfo.username}
</c:if>
<choose>
<c:when test="条件表达式">
//满足条件
</c:when>
...
<c:otherwise>
//多个条件都不满足,就会执行该段
语句
</c:otherwise>
</choose>

循环控制

<c:forEach var="循环时的变量 items="集合|数组" begin="起始值"end="结束值" step="迭代步长" 
 varStatus="循环属性变量">
//循环体
</c:forEach>


//遍历集合
<c:forEach var="str"items="${strings}">
${str}
</c:forEach>


//按普通的值遍历
<c:forEach var="i" begin="0"end="10" step="1">
<a href="#">${i}</a>
</c:forEach>

//遍历map集合
<c:forEach var="m" items="${map}">
${m.key} --- ${m.value}
</c:forEach>

//获取varStatus中的变量内容
<c:forEach var="str" items="${strings}" varStatus="status">
<%--${status.index + 1} ${str}-
-%>
${status.last}
</c:forEach>

格式化:

数字格式化:

<fmt:formatNumber
value="12.34"
pattern="#0.00" /> 12.34
保留小数点后两位数
<fmt:formatNumber value="12"
type="currency"
pattern="$.00"/> -- $12.00
<fmt:formatNumber value="12"
type="currency"
pattern="$.0#"/> -- $12.0


<fmt:formatNumber
value="1234567890"
type="currency"/> --
$1,234,567,890.00(那个货币的符
号和当前web服务器的 local 设定有
关)
<fmt:formatNumber
value="123456.7891"
pattern="#,#00.0#"/> --
123,456.79
<fmt:formatNumber
value="123456.7"
pattern="#,#00.0#"/> --
123,456.7
<fmt:formatNumber
value="123456.7"
pattern="#,#00.00#"/> --
123,456.70
<fmt:formatNumber value="12"
type="percent" /> --
1,200%type 可以是currency、
number、 和percent。

日期格式化

1.<fmt:formatDate
value="${date}"
type="both"/>
输出格式: 2010-5-31 23:59:59
2.<fmt:formatDate
value="${date}"
type="date"/>
输出格式: 2010-4-1
3.<fmt:formatDate
value="${date}"
type="time"/>
输出格式: 23:59:59
4.<fmt:formatDate
value="${date}" type="date"
dateStyle="default"/>
输出格式:2010-5-31
5.<fmt:formatDate
value="${date}" type="date"
dateStyle="short"/>
输出格式:04-5-31
6.<fmt:formatDate
value="${date}" type="date"
dateStyle="medium"/>
输出格式:2010-5-31

7.<fmt:formatDate
value="${date}" type="date"
dateStyle="long"/>
输出格式: 2010年5月31日
8.<fmt:formatDate
value="${date}" type="date"
dateStyle="full"/>
输出格式:2010年5月31日 星期一
9.<fmt:formatDate
value="${date}" type="time"
timeStyle="default"/>
输出格式: 23:59:59
10.<fmt:formatDate
value="${date}" type="time"
timeStyle="short"/>
输出格式:下午11:59
11.<fmt:formatDate
value="${date}" type="time"
timeStyle="medium"/>
输出格式: 23:59:59
12.<fmt:formatDate
value="${date}" type="time"
timeStyle="long"/>
输出格式: 下午11时59分59秒

13.<fmt:formatDate
value="${date}" type="time"
timeStyle="full"/>
输出格式: 下午11时59分59秒 CDT
14.<fmt:formatDate
value="${date}" type="both"
pattern="EEEE, MMMM d, yyyy
输出格式: HH:mm:ss Z"/>
星期四, 四月 1, 2010 13:30:00
-0600
15.<fmt:formatDate
value="${date}" type="both"
pattern="d MMM yy, h:m:s a
zzzz/>
输出格式: 31 五月 04, 11:59:59
下午 中央夏令时

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值