JavaWeb学习——EL表达式与JSTL标签

一、EL表达式

1、简介

JSP表达式语言(Expression Language)使得访问存储在JavaBean中的数据变得非常简单。

EL存取变量数据的方法很简单,例如:${username}。它的意思是取出某一范围中名称为 username的变量。它会依序从Page、Request、Session、Application范围查找(范围从小到大,且都是针对Attrbute())。

2、使用EL访问作用域

页面作用域:

${pageScope.userNum}

请求作用域:

${ requestScope.request_name }相当于<%=request.getAttribute("request_name");%>

会话作用域:

${ sessionScope.session_name }相当于<%=session.getAttribute("session_name");%>

程序作用域:

${ applicationScope.application_name }相当于<%=application.getAttribute("application_name");%>

3、如果要动态取值,可以使用[]

${session.user[date]},其中的date是一个变量,意思是取出session.user数组里面的第date个元素

4、EL表达式的隐性变量:

二、JSTL表达式

1、简介

JSTL是JSp标准标签库的简称,它提供的标签能一定程度上代替java代码,例如<c:forEach/>标签能实现java语言中的循环功能

2、JSTL标签库

  • 核心标签        <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
  • 格式化标签    <%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt" %>
  • SQL标签        <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
  • XML标签        <%@taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml"%>
  • JSTL函数       <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>

标签

描述

<c:out>

用于在JSP中显示数据,就像<%= ... >

<c:if>

与我们在一般程序中用的if一样

<c:forEach>

基础迭代标签,接受多种集合类型

<c:choose>

本身只当做<c:when>和<c:otherwise>的父标签

<c:when>

<c:choose>的子标签,用来判断条件是否成立

<c:otherwise>

<c:choose>的子标签,接在<c:when>标签后,当<c:when>标签判断为false时被执行

3、使用

<c:out>

<c:set var=”test” value=”这是一个测试”>
<c:out value=”${test}”><c:out> 等同于 JSP中的 <%= %>

<c:out value="<string>" default="<string>" escapeXml="<true|false>"/>

属性

描述

是否必要

默认值

value

要输出的内容

default

输出的默认值

主体中的内容

escapeXml

是否忽略XML特殊字符

true

<c:if>

<c:if test=”条件”>满足条件执行的JSP代码</c:if>

<c:choose>

<c:choose>
    <c:when test="判断语句1">执行语句1</c:when>
    <c:when test="判断语句2">执行语句1</c:when>
    ...类似于Java中的switch和case
    <c:otherwise>等同于Java switch中的default</c:otherwise>
</c:choose>用于选择标签对之间满足条件的语句,相当于switch语句

<c:catch>

<c:catch var=”testException”>类似于Java中的try
<% int i = 5/0; %>
</c:catch>
<c:if test=”${testException != null}”>如果在执行过程中,JSP代码发生了错误,那么将会复制给名字
    上面的代码有错误发生
</c:if>

<c:forEach> 和 <c:forTokens>

<c:forEach var=”i” begin=”1” end=”5”>
${i}
</c:forEach>
<c:forTokens items=”a,b,c,d,e” delims=”,” var=”name”>
${name}
</c:forTokens>

<fmt:>

1)格式化日期<fmt:formatDate value=“” pattern=“yyyy-MM-dd HH:mm:ss”/>      

2)格式化数字<fmt:formatNumber  value="${number}" pattern="###,###.##" />

猜你喜欢

转载自blog.csdn.net/weixin_41577923/article/details/83049051