EL与JSTL简介

25 篇文章 0 订阅

EL

1. What

  1. EL( Expression Language意思为表达式语言,可以获取域对象中的数据,它提供了在JsP中简化表达式的方法,让Jsp的代码更加简化
  2. 语法:${表达式}

2. 数据获取

  1. EL根据作用域范围依次获取,越小越先获取
  2. 域的范围由小到大:page < request < session < application
    • ${pageScope.name}
    • ${requestScope.name}
    • ${sessionScope.name}
    • ${applicationScope.name}

3.EL中的运算符

1. el中写算术运算符
    4 + 5 = ${4 + 5}
2. 逻辑运算符 and or && || not !
3. 关系型
    ==, eq
    >=, ge
    <=, le
    !=, ne
4. 非空判断
    <%
        List<String> list = new ArrayList<>();
        list.add("aaaa");
        pageContext.setAttribute("list", list);
    %>
    ${empty list}  => 判断集合是否有数据
                   => 其他普通对象判断是否被实例化
    ${list}
5.三元运算符: ${true? "yes" : "no"} 

4. 获取Javabean 中的数据\

  • ${student.getName()}
  • ${student.name}
  • 本质上都是调用getName() 方法

5.EL常用隐式对象

pageContext相当于jsp的隐式对象pageContext,可以获取jsp中其他八个隐式对象
cookie将 cookie 名称映射到单个 cookie 对象。向服务器发出的客户端请求可以获得一个或多个 cookie。表达式 ${cookie. name .value}返回带有特定名称的第一个 cookie 值。如果请求包含多个同名的 cookie,则应该使用 ${headerValues. name} 表达式。
initParam将上下文初始化参数名称映射到单个值(通过调用 ServletContext.getInitparameter(String name) 获得)。
pageScope将页面范围的变量名称映射到其值。例如,EL 表达式可以使用 ${pageScope.objectName} 访问一个 JSP 中页面范围的对象,还可以使用 ${pageScope .objectName. attributeName} 访问对象的属性。
requestScope将请求范围的变量名称映射到其值。该对象允许访问请求对象的属性。例如,EL 表达式可以使用 ${requestScope. objectName} 访问一个 JSP 请求范围的对象,还可以使用 ${requestScope. objectName. attributeName} 访问对象的属性。
sessionScope将会话范围的变量名称映射到其值。该对象允许访问会话对象的属性。例如: ${sessionScope. name}
applicationScope将应用程序范围的变量名称映射到其值。该隐式对象允许访问应用程序范围的对象。

6. 动态获取base标签href属性值

  • ${pageContext.request.scheme} => http
  • ${pageContext.request.serverName} => 主机地址 localhost
  • ${pageContext.request.serverPort} => 端口号 8080
  • ${pageContext.request.contextPath} => 项目名称
<base href="${pageContext.request.scheme}://${pageContext.request.serverName}:${pageContext.request.serverPort}${pageContext.request.contextPath}/">

JSTL

1. what

JSTL(Java server pages standarded tag library,即JSP标准标签库)开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度

2. 3c标签的使用

<%--1.往request域中存放名称为uname值为admin的数据--%>
<c:set scope="request" var="uname" value="admin"></c:set>
<%--2. 获取数据--%>
<c:out value="${uname}"></c:out>
${uname}

# 3 删除数据
<c:remove var="uname" scope="request"></c:remove>
# 4. 判断
<c:set scope="page" var="uname" value="wy"></c:set>
<c:if test="${pageScope.name eq 'wy'}">
<h1>是wy</h1>
</c:if>
# 多重判断
<c:set scope="request" var="age" value="20"></c:set>
<c:choose>
<c:when test="${age<18}">未成年</c:when>
<c:when test="${age>=18 and age<=30}">青年</c:when>
<c:when test="${age>30 and age<=50}">中年</c:when>
<c:otherwise>老年</c:otherwise>
</c:choose>

<--!>
  items 索引对象
  var 当前遍历到的内容存储到va
  varStatus 当前索引值

</--!>  
<c:forEach items=""  var="" varStatus="index">
    
</c:forEach>
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值