【EL表达式 + JSTL标签库】—— 取代和简化JSP页面的java代码

news/2024/5/18 11:57:10 标签: jsp, EL, JSTL

 

ELExpression_Language_2">EL:Expression Language

▶ 概念:Expression Language ,即 表达式语言

▶ 作用:取代和简化jsp页面java代码的编写

▶ 语法:${表达式}

▶ 注意:jsp页面默认支持el表达式。如果要忽略el表达式,则page指令设置:isELIgnored="true"

 
 

用法:作运算 + 获取值

作运算:

  1. + - * /(div) %(mod) > < >= <= == != &&(and) ||(or) !(not)
  2. 强大的empty:用于判断字符串、数组、集合是否为null或length为0。demo:${empty list}${not empty str}

获取值: el表达式只能从域对象中获取值:${域名城.键名}

  域名称可选:pageScoperequestScopesessionScopeapplicationScope(顾名思义)

<%
    // request域
    request.setAttribute("myLoli", "Alice");
    // session域
    session.setAttribute("myLoli", "Cocoa");
    // application域
    application.setAttribute("myLoli", "Chino");
    // pageContext域
    pageContext.setAttribute("myLoli", "Hana");
%>


<h3>EL获取域中的数据</h3> ---------------------------------------------------------------------------------------

${requestScope.myLoli}
${sessionScope.myLoli}
${applicationScope.myLoli}
${pageScope.myLoli}

<h3>不写域名称,依次从最小的域中查找是否有该键对应的值,直到找到为止<h3> ----------------------------------------------------------
${myLoli}

<h3>对象、集合也是一样的思路<h3> ----------------------------------------------------------------------------------
${域名称.loli.name}						// 这里的name不是真正的成员变量,而是getXxx方法的xxx
${域名称.list[2]}						// List集合竟然可以用下标了 !
${域名称.map.key} / ${map["key"]}		// Map集合竟然有两种写法获取元素 !

 
▶ 补充用法:获取隐式对象

el中有11个隐式对象(直接就能用),其中有个我们熟悉的pageContext对象,这个对象又可以用来获取jsp的其他八大对象

一个极其常见的用法:动态获取虚拟目录 ${pageContext.request.contextPath}

 

 

 

JSTLJSP_Standarded_Tag_Library_64">JSTL:JSP Standarded Tag Library

▶ 概念:Java Server Page Standarded Tag Library ,即JSP标准标签库

▶ 作用:取代和简化jsp页面java代码的编写

▶ 使用:导入jar包 → taglib指令引入标签库(起前缀名) → 才能使用
 
 

常用的三个标签

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

--------------------------------------------- if --------------------------------------------------------------
<c:if test="true">
    <h1>我会被显示~</h1>
</c:if>

<c:if test="${not empty list}">
    <h1>我通常与el表达式一起使用</h1>
</c:if>

--------------------------------------------- choose ----------------------------------------------------------
<c:choose>												(choose相当于switch)
    <c:when test="${number == 1}">星期一</c:when>		(when相当于case)
    <c:when test="${number == 2}">星期二</c:when>
    <c:when test="${number == 3}">星期三</c:when>
    <c:otherwise>其他</c:otherwise>						(otherwise相当于default)
</c:choose>

--------------------------------------------- forEach ---------------------------------------------------------
<c:forEach begin="1" end="9" var="i" step="2">			(相当于可设置步长的for语句)
    ${i}
</c:forEach>

<c:forEach items="${list}" var="li">					(相当于增强for)
    ${li};
</c:forEach>

<c:forEach begin="1" end="9" var="i" varStatus="s">		(varStatus称为循环状态对象)
    ${s.index}											(下标,完全等同i。如果是增强for,则从0开始)
    ${s.count}											(记录循环次数)
</c:forEach>

 

 
 

 

 

 

 

 

 

 

 

 

End ♬

by a Lolicon ✪


http://www.niftyadmin.cn/n/1330447.html

相关文章

图解【MVC开发模式】【三层架构】

JSP演变历史 早期只有Servlet&#xff0c;什么都用response输出&#xff0c;尤其是大量的页面标签数据&#xff0c;是个棘手的问题后来有了jsp这个标签java代码的缝合怪&#xff0c;简化了Servlet开发——“简答题"变成了"填空题”&#xff0c;只是维护代码变成了噩…

2018 icpc网络赛-Nanjing 题解 L. Magical Girl Haze

题目链接:https://nanti.jisuanke.com/t/31001 There are NN cities in the country, and MM directional roads from uu to v(1\le u, v\le n)v(1≤u,v≤n). Every road has a distance c_ic i ​ . Haze is a Magical Girl that lives in City 11, she can choose no more…

【图解算法】这个课程表大不简单——拓扑排序

引言 >_< 现在需要为学生排好一张课表&#xff08;课程的学习顺序&#xff09; 可事情没有这么简单&#xff1a; 课程前驱课程课程0课程1课程0、课程4课程2课程3课程0课程4课程5课程3课程6课程3不妨画成一张图&#xff08;Graph&#xff09;试试看&#xff1f; 我们意…

2018 icpc网络赛-Nanjing 题解 A An Olympian Math Problem

题目链接&#xff1a;https://nanti.jisuanke.com/t/30990 1000ms 65536K Alice, a student of grade 66, is thinking about an Olympian Math problem, but she feels so despair that she cries. And her classmate, Bob, has no idea about the problem. Thus he wants y…

【AJAX】一篇文章弄懂并学会AJAX

概念 ASynchronous JavaScript And XML&#xff1a;异步的JavaScript和XML同步和异步&#xff1a;客户端和服务器端相互通信的基础上。同步——客户端在等待服务器端的响期间不能做任何其他操作&#xff1b;异步——服务器处理请求的过程中&#xff0c;客户端可以进行其他的操…

【Filter过滤器案例】登录验证+敏感词过滤

登录验证 >>> 思路: >>> 先假设拦截所有资源(Servlet, jsp...均不让访问)&#xff0c;判断资源是否与登录有关: >>> 1.与登录相关 ---- 直接放行 >>> 2.与登录无关 ---- 判断是否已经登录(已登录--放行; 未登录--跳转到登录界面)WebFi…

HDU 2000 ASCII码排序

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid2000 roblem Description 输入三个字符后&#xff0c;按各字符的ASCII码从小到大的顺序输出这三个字符。 Input 输入数据有多组&#xff0c;每组占一行&#xff0c;有三个字符组成&#xff0c;之间无空格。 Output 对…

【JSON】一篇文章学会Json——数据传输的最佳选择

概述 JavaScript Object Notation&#xff0c;JavaScript对象表示法JSON是存储和交换信息的语法。类似XML。JSON比XML更小、更快、更易解析。因此更适合数据传输 理解 Json是且仅是一个表示法。它可以是对象&#xff0c;可以是字符串。在数据传输时&#xff0c;我们使用的是J…