0x00前言

EL和JSTL都是JSP的内容的拓展,都是开发的一些东西,稍微学习记录一下,避免以后忘记

0x01EL

0x1基本用法

概念:Expression language 表达式语言

作用:替换和简化JSP页面中的java代码编写

语法:\({}
设置忽略EL语法
(1):在page中实现isELIgnored="true"忽略当前所有页面的el表达式
(2):/\){}忽略当前这个el表达式

0x2使用的方法

1.运算:基础的+-*/(加减乘(div)除)都可以实现

还有基础的逻辑运算&&(and )||(or)

比较运算符 <,>,>=,<=,==,!=

空运算符:empty\({empty list}判断字符串、集合、数组、是否为null和长度为0
2.获取值
语法:\){域对象.键名}

语法2:${键名}从最小的域中去找对于的键值,直到找到为止

域对象:参考前一篇文章中的内置对象中的前4个:pageContext,request,session,application(ServletContext)

pageScope---->pageContext

requestScope--->request

sessionScope--->session

applicationScope--->application(ServletContext)

使用方法:

可以通过把对象存入后直接通过属性的方法获得属性(私有的要设置get和set方法)

也可以通过对象调取方法

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
request.setAttribute("name","zhangsan" );
session.setAttribute("name","wangwu");
%>
${requestScope.name}<br>
${sessionScope.name}
</body>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
ELcontent.User user = new ELcontent.User();
user.setName("zhangsan");
user.setAge(12);
user.setBirthday(new Date());
request.setAttribute("zhangsan",user);
%>
${requestScope.zhangsan.name}
${requestScope.zhangsan.getbitStr()}
</body>
</html>

3.获取list

获取对象、List集合、Map集合的值

1. 对象:${域名称.键名.属性名}
本质上会去调用对象的getter方法 2. List集合:${域名称.键名[索引]} 3. Map集合: ${域名称.键名.key名称} ${域名称.键名["key名称"]}

0x02JSTL

0x1基础用法

1.概念:JavaServer Pages tag LiBRARY JSP标准标签库

由Apache组织提供的开源的免费的jsp标签

2.作用简化和替换JSP上面的java代码

3.使用步骤

(1)导入相关jar包

(2)引入标签库<%@taglib%>

4常用标签:if,choose,foreach

1.if 标签 ,test 必须属性,接受boolean表达式

2. choose:相当于java代码的switch语句
1. 使用choose标签声明 相当于switch声明
2. 使用when标签做判断 相当于case
3. 使用otherwise标签做其他情况的声明 相当于default 3. foreach:相当于java代码的for语句

中间遇到一个方法:一直报错期间发现了一个问题:attribute[test]不接受任何表达式

这是因为版本不兼容的问题

web.xml中版本号不兼容产生的问题;
解决方法:
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core” %>改为
<%@taglib prefix=“c” uri=“http://java.sun.com/jstl/core_rt” %>

看一下demo和基础用法,

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %> <html>
<head>
<title>Title</title> </head> <body>
<%
request.setAttribute("number",5);
%> <c:if test="true"><h1>我是真</h1></c:if>
<c:if test="${number % 2 !=0}">
${number}为基数
</c:if>
<c:choose>
<c:when test="${number==1}">星期一</c:when>
<c:when test="${number==2}">星期二</c:when>
<c:when test="${number==3}">星期三</c:when>
<c:when test="${number==4}">星期四</c:when>
<c:when test="${number==5}">星期五</c:when>
</c:choose>
<c:forEach begin="1" end="10" var="i" step="1" varStatus="s">
<h3>begin 开始值</h3>
<h3>end 结束值</h3>
<h3>var 临时变量</h3>
<h3>step 步长</h3>
<h3>varStatus:
index:元素的索引
count=循环的次数从1开始
</h3>
${i}<br>${s.count}
</c:forEach> </body>
</html>

0x03总结

本篇学习文章还是比较短,内容比较少主要要记住的是后面EL和JSTL的连用达到简化JSP中java代码,让后面更好操作

java学习之EL和JSTL的更多相关文章

  1. Java Web 学习(9) —— EL 与 JSTL

    EL 与 JSTL EL与JSTL的作用是为了减少JSP页面中的代码. EL EL(Expression Language):表达式语言 常用于取值 语法 EL 表达式以${开头,以}结束. 多个表达 ...

  2. java学习笔记—EL表达式(38)

    EL表达式 EL即Expression Language,主要的任务是帮助开发者简化获取域属性. 但是一般情况下需要使用EL和JSTL结合使用. 语法: ${ // 隐含对象|直接写域中的属性 }  ...

  3. [Java] JSP笔记 - EL、JSTL 常用标签

    一. 什么是 EL 语言 表达式语言(EL)是 JSP 2.0 引入的一种计算和输出 Java 对象的简单语言. 二.EL 语言的作用 为了使JSP写起来更加简单.表达式语言的灵感来自于 ECMASc ...

  4. JAVA学习JSTL与EL

    一.基础 1.EL(Expression Language):为了使jsp写起来更加简单,提供了在Jsp中简化表达式的方法 2.JSTL:(JSP Standard Tag Library)jstl标 ...

  5. Java学习——JSTL标签与EL表达式之间的微妙关系

    原文总结的太好了,忍不住记录.转发. 原文地址:http://blog.csdn.net/u010168160/article/details/49182867 目录(?)[-] 一EL表达式 EL相 ...

  6. Java Web学习笔记之---EL和JSTL

    Java Web学习笔记之---EL和JSTL (一)EL (1)EL作用 Expression  Language(表达式语言),目的是代替JSP页面中复杂的代码 (2)EL表达式 ${变量名} ( ...

  7. JavaWeb——EL及JSTL学习总结

    什么是EL表达式 为什么需要EL EL的主要作用 EL的语法 EL的开发步骤 EL实例练习 EL中的运算符 EL表达式显示内容的特点 EL的特点 EL隐式对象 EL隐式对象介绍 隐式对象实例练习 什么 ...

  8. java web学习总结(三十) -------------------JSTL表达式

    一.JSTL标签库介绍 JSTL标签库的使用是为弥补html标签的不足,规范自定义标签的使用而诞生的.使用JSLT标签的目的就是不希望在jsp页面中出现java逻辑代码 二.JSTL标签库的分类 核心 ...

  9. 第75节:Java的中的JSP,EL和JSTL

    第75节:Java中的JSP,EL和JSTL 哭吧看不完的!!! Cookie和`Session 请求转发和重定向的区别: 地址不一样 请求次数也不一样 数据无法传递 4.跳转范围有限制 效率 请求转 ...

随机推荐

  1. dotnet 设计规范 · 抽象类

    X 不要定义 public 或 protected internal 访问的构造函数.默认 C# 语言不提供抽象类的公开构造函数方法. 如果一个构造函数定义为公开,只有在开发者需要创建这个类的实例的时 ...

  2. 第八篇:用css写一个登录界面

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. KingabseES 锁机制

    KingabseES的锁机制 目录 KingabseES的锁机制 一.前言 二.锁机制 三.表级锁 ( Table-Level Locks ) 1.访问共享(ACCESS SHARE) 2.行共享(R ...

  4. C/C++内存泄漏检测方法

    1. 内存泄漏 内存泄漏(Memory Leak)是指程序中已动态分配的堆内存由于某种原因程序未释放或无法释放,造成系统内存的浪费,导致程序运行速度减慢甚至系统崩溃等严重后果. 2. 检测代码 使用链 ...

  5. Exchange如何将邮件转发给外部邮件地址

    Exchange如何将邮件转发给外部邮件地址 最近遇到一个需求.一位已经离职的员工需要将后续的邮件转发给他自己的私人邮箱.安全,行政的审核通过后,这个问题就到了技术部门了. Exchange可以很方便 ...

  6. 【疑难杂症】关于Transformer到底是什么

    在学习transform的时候,很多视频上来就是一张图开始解释图里面残差网络,self-attention等等巴拉巴拉的意思,然后组装,看也看完了,但是还是不明白transformer和selfatt ...

  7. catalina.out日志割接

    文章转载自:https://blog.51cto.com/loong576/2091460 Tomcat的catalina.out日志分割有多种方式,如logrotate.cronolog等,本文采用 ...

  8. 《Hyperspectral Image Classification With Deep Feature Fusion Network》论文笔记

    论文题目<Hyperspectral Image Classification With Deep Feature Fusion Network> 论文作者:Weiwei Song, Sh ...

  9. Pjax 下动态加载插件方案

    在纯静态网站里,有时候会动态更新某个区域往会选择 Pjax(swup.barba.js)去处理,他们都是使用 ajax 和 pushState 通过真正的永久链接,页面标题和后退按钮提供快速浏览体验. ...

  10. 大华海康NVR录像JAVA下载及WEB播放

    近期在处理一个将NVR录像机上的录像下载到服务器并通过浏览器播放的需求. 梳理记录下过程,做个备忘,同时遇到的一些细节问题解决,也供需要的同学参考. 需求比较简单,就是把指定时间段的录像上传到服务器保 ...