Java Web学习总结(七) EL表达式和JSTL

Java Web学习总结(七) EL表达式和JSTL

1.EL表达式

​ 简化jsp页面的书写,消除jsp页面中的java代码

  • 基本语法

    ${}
    	- EL不需要导包
    	- 在EL中调用属性, 其实是调用的getXXX()方法
    
  • 基本用法

    //jsp用法
    <%=request.getAttribute("username")%>
    <%=request.getAttribute("password")%>
    //EL用法
    ${username}
    ${password}
    
  • 运算符

    1. 点运算符( . )

      用于访问jsp页面中某些对象的属性

    2. 方括号运算符( [] )

      功能与点运算符相同,但是当属性名包含一些特殊符号时,只能使用方括号运算符

      • 可以处理数组${requestScope.arr[0]}
      • 可以容纳变量属性
    3. empty 运算符

      用于判断某个对象(也适用于Set, Map, List)是否为null或" ", 基本语法如下

      ${empty var}
      

    **注意: **

    • 在应用EL表达式取值时, 没有数组的下标越界, 没有空指针异常, 没有字符串的拼接
    • 当对象属性名称首字母大写时, 前台会出现拿不到数据的情况
  • EL隐式对象

    隐含对象名称描述
    applicationScopeapplication域
    sessionScopesession域
    requestScoperequest域
    pageScopepage域
    pageContext可以用来获得其他的隐式对象
    param保存了所有请求参数的Map对象
    paramValues当一个请求有多个值时使用,返回的是一个String类型的数组,
    header请求头字段
    headerValues请求头字段,返回的是一个String类型的数组
    cookiecookie

2.JSTL

1.什么是JSTL

由SUN公司推出的"标准标签库"

2.下载与使用

1.下载

下载两个jar包

  • jstl包

  • standard

https://mvnrepository.com/artifact/jstl/jstl

https://mvnrepository.com/artifact/taglibs/standard

2.使用

使用时导入jar包后,在jsp页面使用taglib引入标签库即可

​ web工程引入jar包直接放入/WEB-INF/lib/ 中即可

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

3.Core标签库

1.<c:out>
- 无标签体的情况
<c:out value="要显示的值,支持EL表达式" [default="默认显示的值"] [escapeXml="{true|false}"] />
- 有标签体的情况
<c:out value="要显示的值,支持EL表达式" [escapeXml="{true|false}"]>默认显示的值</c:out>

escapeXml 属性用于指定是否将">, < , & "等特殊字符进行HTML编码, 默认为true

2.<c:if>
<c:if test="逻辑表达式" var="指定逻辑表达式中变量的名字"
	[scope="{page|request|session|application}"] />
3.<c:choose>
1.<c:when>

<c:when test=""></c:when>

  • 必须在<c:otherwise>之前, 在<c:choose>里面
  • 相当于if-else中的if部分
2.<c:otherwise>

<c:otherwise></c:otherwise>

  • 没有属性, 必须作为<c:choose>最后出现的标签体
4.<c:forEach>

对集合对象进行循环迭代操作

属性描述
var指定当前迭代到的元素保存到page域中的名称
items指定将要迭代的集合对象
varStatus指定当前迭代信息的对象, 有以下属性:count, index, first, last
begin开始的索引, 默认为0
end结束的索引
step迭代的步长
//例子, users是servlet保存在request作用域中的一个map对象
<c:forEach items="${requestScope.users}" var="user">
		${user.key}&nbsp;${user.value}<br/>
	</c:forEach>
5.<c:param>

用于在URL地址中附加参数, 它通常嵌套在<c:url>标签内使用

  • 基本语法
<c:param name="name" value="value">
6.<c:url>

用以在jsp页面中构造一个新的地址

  • 基本语法
<c:url value="value">
	<c:param></c:param>
</C:url>

<c:url>有以下基本属性

属性描述
value指定构造的URL
context指定导入同一个服务器下其他Web应用的名称
var指定构造的URL的变量名称
scope指定保存的域对象
//例子,这里填的value的值为相对地址
<c:url value="show.jsp" var="user">
		<c:param name="username">zs</c:param>
		<c:param name="password">123</c:param>
</c:url>
<a href="${user}">登陆</a>
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值