【2022/08/16】EL &JSTL

EL &JSTL

一、EL表达式

  1. 简介:EL(Expression Language),是一种表达式语言,它提供了在 JSP 中简化表达式的方法,让Jsp的代码更加简化。
    特点:非常简洁,易懂
  2. 基本使用:
    1 基本语法:${}
    2 包含的内容:
通过变量名取值
${变量}
获取对象的属性值
${对象名.属性名}
获取集合元素
${对象名.size()} //调用方法
${对象名[索引]} //获取集合中索引的值
${map集合对象名["key"]} //获取到map集合中的key所应的value
执行表达式
//算数运算
${ + - * / %}
/:可以使用div来替代
%:可以使用mod方式替代
//逻辑运算符
&&(and) ||(or) !(not)
//关系运算符
>(gt) <(lt) >=(ge) <=(le) !=(ne)
==(eq)
//empty运算符
empty:代表判断元素是否为null或者是是否包含元素
not empty:代表代表判断元素是否不为null或者是是否不包含元素
  1. 获取作用域中的内容以及参数的内容和页面的内容

隐式对象:

a:作用域访问对象:pageScope、requestScope、sessionScope、applicationScope
正常情况下,在使用EL表达式时,需要在表达式中添加对应的作用域
比如:${pageScope.xxx}${requestScope.xxx}${sessionScope.xxx}${applicationScope.xxx}

b:参数访问对象:param、paramValues
例:${param.xxx}${paramValues.xxx}

c: JSP隐式对象:pageContext
例:${pageContext.request.contentPath}(获取当前模块的根路径)

二、JSTL

  1. 简介:JSTL(Java Server Page Standard Tag Library),即JSP标准标签库。它主要提供给Java Web开发人员一个标准通用的标签库,可以提高程序的可读性,降低程序的维护难度。

在JSTL中包括两种常用标签库内容:
核心标签:核心标签库是整个JSTL中最常用的部分,主要由以下几部分组成:基本输入输出、流程控制、迭代操作和URL操作。负责Web应用的常见工作,如:循环、表达式赋值、基本输入输出等。
I18N格式标签库:用来格式化显示数据的工作如:对不同区域的日期格式化等。

  1. 步骤:
  • 导入依赖
<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>

//例:
<ul>
<%
 	for (NewsType newsType : list) {
%>
	<li style="list-style: none;line-height: 25px" ><%=newsType.getNewsTypeIllu()%></li>
<%
	}
%>
/ul>

用el书写可写为:
<ul>
	<c:forEach items="${requestScope.list}" var="newsType">
	<li style="list-style: none;line-height: 25px" >${newsType.newsTypeIllu}</li>
	</c:forEach>
</ul>
  • 格式化
//数字格式化
1.<fmt:formatNumbervalue="12.34"pattern="#0.00" /> 12.34 保留小数点后两位数
2.<fmt:formatNumber value="12" type="currency" pattern="$.00"/> -- $12.00
3.<fmt:formatNumber value="12" type="currency" pattern="$.0#"/> -- $12.0
4.<fmt:formatNumber value="1234567890" type="currency"/> --$1,234,567,890.00(那个货币的符号和当前web服务器的 local 设定有关)
5.<fmt:formatNumber value="123456.7891" pattern="#,#00.0#"/> --123,456.79
6.<fmt:formatNumber value="123456.7" pattern="#,#00.0#"/> --123,456.7
7.<fmt:formatNumber value="123456.7" pattern="#,#00.00#"/> -- 123,456.70
8.<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"/> 输出格式: 20105318.<fmt:formatDate value="${date}" type="date" dateStyle="full"/> 输出格式:2010531日 星期一
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"/> 输出格式: 下午11595913.<fmt:formatDate value="${date}" type="time" timeStyle="full"/> 输出格式: 下午115959CDT
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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值