EL&JSTL

1 篇文章 0 订阅
1 篇文章 0 订阅

EL

1.EL表达式

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

2.基本使用

基本语法

 ${}

包含的内容

 通过变量名取值
 ${变量}
 获取对象的属性值
 ${对象名.属性名}
 获取集合元素
 ${对象名.size()}   //调用方法
 ${对象名[索引]}  //获取集合中索引的值
 ${map集合对象名["key"]}  //获取到map集合中的key所应的value
 执行表达式
 ${+ - * %}  //算数运算
 / 可以使用div来替代
 % 可以使用mod来替代
 &&(and) || (or) !(not)  //关系运算符
 >(gt) <(lt) >=(ge) <=(le) !=(ne) ==(eq)
 empty运算符
 empty:代表判断元素是否为null或者是否包含元素
 not empty:代表判断元素是否不为null或者是否不包含元素                         

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

作用域的访问对象

一般,使用EL表达式时,需要在表达式中添加对应的作用域,例如${sessionScope.xxx},不写作用域时,EL表达式就会按照page-->request-->session-->application顺序查找值或对象,如果没有找到就返回null。如果调用某个对象的某个属性或方法,EL表达式未找到对应的值或对象就会输出空白。

参数访问对象

param相当于是在页面中调用了 request.getParameter(" ")来获取参数中的内容。

 

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

JSP隐式对象

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

JSTL

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

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

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

  • I18N格式标签库:用来格式化显示数据的工作, 如:对不同区域的日期格式化等。

核心标签库

输入输出

1.导入jstl的依赖

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

2.在使用该库的页面中添加指令

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

3.使用标签库

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

4.输出内容

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

删除属性

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

条件标签

 <c:if test="条件表达式">
 </c:if>
 if表达式没有else相关操作,如果需要多层判断,就需要多写一些if语句
 ​
 例:
 <c:if test="${empty userInfo}"> //用户对象为null
     你还没登录!
 </c:if>
 <c:if test="${not empty userInfo}"> //用户对象不为null
     欢迎你,${userInfo.username}
 </c:if>
 ​
 <choose>
     <c:when test="条件表达式">
         满足条件,便执行我!
     </c:when>
     <c:otherwise>
         别的条件不满足,才会执行我!
     </c:otherwise>
 </choose>
 ​
 例:
 <c:choose>
     <c:when test="${empty userInfo}">
         您还没有登录!
     </c:when>
     <c:otherwise>
         您好,${userInfo.username}
     </c:otherwise>
 </c:choose>
 ​

循环控制

 <c:forEach var="循环时的变量" items="集合|数组" begin="起始值" end="结束值" step="迭代步长" varStatus="循环属性变量">
     循环体
 </c:forEach>
 ​
 遍历集合
 <c:forEach var="str" items="${strings}">
     ${str}
 </c:forEach>
 ​
 普通遍历
 <c:forEach var="i" brgin="0" end="10" step="1">
     ${i}
 </c:forEach>
 ​
 遍历map集合
 <c:forEach var="m" items="${map}">
     ${m.key}+${m.value}
 </c:forEach>

格式化

数字格式化

 <fmt:formatNumber value="12.3375" 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="12" type="percent" /> 
 1,200%type 可以是currency、number、 和percent。

日期格式化

 <fmt:formatDate value="${date}" type="both"/>
 输出格式: 2010-5-31 23:59:59
 ​
 <fmt:formatDate value="${date}" type="date"/>
 输出格式: 2010-4-1
 ​
 <fmt:formatDate value="${date}" type="time"/>
 输出格式: 23:59:59
 ​
 <fmt:formatDate value="${date}" type="date" dateStyle="default"/>
 输出格式:2010-5-31
 ​
 <fmt:formatDate value="${date}" type="date" dateStyle="short"/>
 输出格式:04-5-31
 ​
 <fmt:formatDate value="${date}" type="date" dateStyle="medium"/>
 输出格式:2010-5-31
 ​
 <fmt:formatDate value="${date}" type="date" dateStyle="long"/>
 输出格式: 2010年5月31日
 ​
 <fmt:formatDate value="${date}" type="date" dateStyle="full"/>
 输出格式:2010年5月31日 星期一
 ​
 <fmt:formatDate value="${date}" type="time" timeStyle="default"/>
 输出格式: 23:59:59
 ​
 <fmt:formatDate value="${date}" type="time" timeStyle="short"/>
 输出格式:下午11:59
 ​
 <fmt:formatDate value="${date}" type="time" timeStyle="medium"/>
 输出格式: 23:59:59
 ​
 <fmt:formatDate value="${date}" type="time" timeStyle="long"/>
 输出格式: 下午11时59分59秒
 ​
 <fmt:formatDate value="${date}" type="time" timeStyle="full"/>
 输出格式: 下午11时59分59秒 CDT
 ​
 <fmt:formatDate value="${date}" type="both" pattern="EEEE, MMMM d, yyyy 输出格式: HH:mm:ss Z"/>
 星期四, 四月 1, 2010 13:30:00-0600
 ​
 <fmt:formatDate value="${date}" type="both" pattern="d MMM yy, h:m:s a zzzz/>
 输出格式: 31 五月 04, 11:59:59 下午 中央夏令时
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值