EL表达式学习笔记

EL表达式


EL(Expression Language)表达式语言,用于简化JSP的输出。
EL表达式的基本语法:${表达式}

示例:<h1>${student.name}</h1>

	<h1>姓名:${requestScope.student.name }</h1>
	<h2>手机:${requestScope.student.mobile }</h2>
	<h2>评级:${requestScope.grade }</h2>

在EL表达式中既不用考虑字符串拼接的问题,也不用考虑包的导入问题。
–requestScope 是EL表达式的作用域对象

EL表达式内置四种作用域对象
作用域对象描述
pageScope从当前页面取值
requestScope从当前请求中获取属性值
sessionScope从当前会话中获取属性值
applicationScope从当前应用获取全局属性值

EL表达式内置四种作用域对象
忽略书写作用域对象时,el则按作用域从小到大依次尝试获取。
建议:虽然可以不写作用域对象,但是为了程序的严谨性,应该要写上


EL表达式的输出

语法: [ 作 用 域 . ] 属 性 名 [ . 子 属 性 ] / / [ ] 为 可 选 项 E L 表 达 式 支 持 将 运 算 结 果 进 行 输 出 。 例 如 : {[作用域.]属性名[.子属性]} //[ ]为可选项 EL表达式支持将运算结果进行输出。例如: [.][.]//[]EL{emp.salary + 300 } ,${ 1<=3&&2>4 }

EL支持绝大多数对象输出,本质是执行toString()方法
EL输出参数值
EL表达式内置param对象来简化参数的输出

语法:${param.参数名}


JSTL标签库

JSTL (JSP Standard Tag Library),JSP标准标签库
JSTL用于简化JSP开发,提高代码的可读性与可维护性
JSTL由SUN定义规范,由Apache Tomcat团队实现。
JSTL需要自己下载,自己安装。
点击下载jstl标签库(只需下载spec和impl即可)
安装JSTL标签库
将Jar文件复制到工程的/WEB-INF/lib目录(推荐)
将jar文件复制到Tomcat安装目录的lib目录
J2EE它只定义了标准,具体的实现是由厂商决定的。


JSTL的标签库种类
JSTL按功能划分可分为鹉类标签库
类别

  • 核心标签库 -core (重要)
  • 格式化输出标签库 -fmt (重要)
  • SQL操作标签库 -sql
  • XML操作标签库 -xml
  • 函数标签库 -functions //前两种非常重要,后面三种现在不常用

核心标签库:是JSTL最重要的标签库,提供了JSTL的基础功能
如何引用? 在JSP页面中,在首行添加
<%@ taglib prefix = "c" uri="http://java.sun.com/jsp/jstl/core" %>
用于说明我们需要在JSP中使用核心标签库。 上面的指令是写死的,不能更改。

JSTL核心标签库在taglibs-standard-impl.jar由META-INF/c.tld定义。


判断标签

JSTL核心库提供了两组判断的标签
<c:if>     -单分支判断
<c:choose><c:when><c:otherwise> -多分支判断。
<c:if   test = "${ 2>3 }">    //core库中的标签,test为测试属性,EL表达式的值必须为布尔表达式 content1....	//if条件为真,则执行相关操作。
</c:if>
多分枝判断
<c:choose>
      <c:when test = "${ 布尔表达式 }">
	<条件成立时执行的内容>
       </c:when test>
       <c:when test ="${布尔表达式}">
                 <条件成立时执行的内容>
       </c:when test>
       <c:otherwise>
	<当所有的条件都不成立时,输出此标签中的内容>
       </c:otherwise>
</c:choose>

JSTL遍历集合

<c:forEach>标签用于遍历集合(Collection)中的每一个对象。
<c:forEach var='p'  items = "${persons}"  varStatus = "idx" >
	    第${idx.index + 1}位 <br/>
	    姓名:${p.name}    性别:${p.sex}    年龄:${p.age}
</c:forEach>

fmt格式化标签库

fmt格式化标签库URI:http://java.sun.com/jsp/jstl/fmt

<fmt:formatDate value = " " pattern = "" > 格式化日期标签

<fmt:formatNumber value = " " pattern = " " >格式化数字标签

日期格式化

	<!-- 
		formatDate  pattern
		yyyy - 四位年
		MM   - 两位月
		dd   - 两位日
		hh   - 12小时制
		HH   - 24小时制
		mm   - 分钟数
		ss   - 秒数
		SSS  - 毫秒
	 -->
	</h2>
	<h2>
	<fmt:formatDate value="${requestScope.now }" pattern="yyyy年MM月dd日HH时mm分ss秒 SSS毫秒"/>
	</h2>

数字格式化:引用数字格式化标准库

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

	<fmt:formatNumber value="${amt }" pattern="0,000.00"></fmt:formatNumber><!-- 数字格式设置位 000,000,000.00的格式-->

空值的格式化:空值在jsp当中不产生输出效果,若想要产生输出效果吗,则需要实现核心库当中的标签
使用的示例如下:<h2>null默认值:<c:out value="${nothing }" default="无"></c:out></h2>
//当nothing 的值为null时,默认显示为:无
空值格式输出还有一个作用,就是可以对html的源码进行转义,这样就能避免被浏览器解析成页面
具体做法是:
String html = "<h2>这是一段文字</h2>"
<c:out value=html escapeXml = "true" > </c:out> //escapeXml = "true" >
这样将会是源代码原封不动的输出,而浏览器不会对其进行解析。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值