javaweb(09) EL表达式&JSTL标签库(jsp相关,了解)

javaweb(09) EL表达式&JSTL标签库(jsp相关,了解)

EL表达式

简介和基本使用

  • EL 表达式的全称是:Expression Language。是表达式语言。
  • EL 表达式的作用:EL 表达式主要是代替 jsp 页面中的表达式脚本在 jsp 页面中进行数据的输出。 因为 EL 表达式在输出数据的时候,要比 jsp 的表达式脚本要简洁很多。
  • EL 表达式的格式是:${表达式}
  • 要获取对象中,某个属性直接使用**.属性名**的方式
  • 当四个域中都有相同的 key 的数据的时候,EL 表达式会按照四个域的从小到大的顺序去进行搜索,找到就输出。
  • EL 表达式在输出 null 值的时候,输出的是空串。jsp 表达式脚本输出 null 值的时候,输出的是 null 字串。
  • 域中有特殊值,如stu-x,使用.(点)的方式“-”会被当成减号,应使用"[stu-x]"来替换,应统一使用[],如students[stu][name],不能student[stu].name
<body> 
    <% request.setAttribute("key","值"); %>
    表达式脚本输出 key 的值是: <%=request.getAttribute("key1")==null?"":request.getAttribute("key1")%>
    <br/> 
    EL 表达式输出 key 的值是:${key1} 
</body>

EL表达式的11个隐含对象

EL表达式中有11个隐含对象可以直接使用:

image-20200814200116292

四个域对象

  • pageContext域中的数据:pageScore(封装了pageContext域中的所有共享数据,以键值对方式)
  • request域中的数据:requestScore(封装了request域中所有的共享数据,以键值对方式)
  • session域中的数据:sessionScore(封装了session域中所有的共享数据,以键值对方式)
  • application域中的数据:applicationScore(封装了application域中所有的共享数据,以键值对方式)
<body>
    <% 
    	pageContext.setAttribute("key1", "pageContext1");
		pageContext.setAttribute("key2", "pageContext2"); 
		request.setAttribute("key2", "request"); 
		session.setAttribute("key2", "session"); 
		application.setAttribute("key2", "application"); 
	  %>
     ${
    
     applicationScope.key2 } 
</body>

与HTTP相关的五个

image-20200814201540013

pageContext

  • 用于取出jsp页面的其它隐含对象
${
    
    pageContext.request.scheme}

<%= pageContext.getRequest().getScheme()%>

image-20200814202046757

initParam

  • 用于获取xml文件的初始化参数

EL表达式运算

关系运算

image-20200814202252327

逻辑运算

image-20200814202315420

算术运算

image-20200814202348350

注意+号只能用作算术运算,不能用于连接字符串

empty运算

  • empty 运算可以判断一个数据是否为空,如果为空,则输出 true,不为空输出 false。

image-20200814202511720

示例:

image-20200814202559121

三元运算

表达式 1?表达式 2:表达式 3

如果表达式 1 的值为真,返回表达式 2 的值,如果表达式 1 的值为假,返回表达式 3 的值。

JSTL标签库

简介

  • JSTL 标签库 全称是指 JSP Standard Tag Library JSP 标准标签库。是一个不断完善的开放源代码的 JSP 标签库。

  • EL 表达式主要是为了替换 jsp 中的表达式脚本,而标签库则是为了替换代码脚本。这样使得整个 jsp 页面变得更佳简洁。

image-20200814202838381

使用步骤

image-20200814202900124

core核心库的使用

<c:set/>

作用:set 标签可以往域中保存数据

image-20200814205700368

<c:if/>

if 标签用来做 if 判断。

image-20200814205758695

**<c:choose> <c:when> <c:otherwise>**标签

作用:多路判断。跟 switch … case … default 非常接近

用法:

image-20200814205922940

示例:

image-20200814205942455

image-20200814210004655

<c:forEach />

作用:遍历输出使用。

1. 遍历 1 10,输出

image-20200814210117827

2. 遍历 Object 数组

image-20200814210146303

3. 遍历 Map 集合

image-20200814210214099

4. 遍历 List 集合—list 中存放 Student 类,有属性:编号,用户名,密码,年龄, 电话信息

遍历** Map 集合

[外链图片转存中…(img-Svl1H9gu-1597410312272)]

4. 遍历 List 集合—list 中存放 Student 类,有属性:编号,用户名,密码,年龄, 电话信息

image-20200814210314953

猜你喜欢

转载自blog.csdn.net/weixin_45834777/article/details/108013662