使用EL和JSTL简化JSP_idea如何使用el和jstl简化jsp-程序员宅基地

技术标签: java  servlet  Servlet  java Web 数据编程  开发语言  

EL表达式

定义

  • Experssion Language 表达式语言,替代JSP页面中访问数据时的复杂代码,执行表达式。

特点

  • 使用简单

语法

${表达式}
点操作符,可以访问对象的某个属性
[]操作符,可以访问对象的某个属性及数组元素

EL表达式的隐式对象

1.作用域访问对象

  • pageScope对象

  • requestScope对象

  • sessionScope对象

  • applicationScope对象

每个作用域对象都和JSP的域对象一一关联。当访问的数据没有指定域时,会按照顺序从小到大找。

2.参数访问对象

  • param对象 获取参数

  • paramValues对象 返回数组,获取多个参数

3.JSP隐式访问对象

  • pageContext 可以访问jsp的内置对象

不能直接访问JSP内置对象: 通过pageContext去访问
如: pageContext.request.getAttribute("map")

4.首部访问对象

  • header

  • headerValue

  • cookie

用于访问请求头的数据。

5.初始化访问对象

  • initParam对象

Empty前缀操作符

Empty运算符是一个前缀操作符,用于检测一个变量是否为空

${empty username}   true
${not empty username} false
${! empty username}   false

JSTL标签库

定义

  • JSP标准标签库(JSP Standard Tag Library)

  • 包含一组开发JSP页面时常见功能的标准标签。

    核心标签库有
    通用标签库 set out remove
    条件标签库 if  choose
    迭代标签库 foreach 

优点

  • 不用嵌入java代码就可以实现JSP页面逻辑控制

  • 配合EL表达式,方便的实现JSP页面编码。

  • 代码简洁。

在idea中JSTL的引入

  1. 在项目中引入JSTL依赖的jar文件

  2. 使用taglib指令导入标签库

prefix 设置前缀名

uri 设置核心文件

通用标签库

out标签

  • 用于输出表达式的结果,比EL输出功能更加丰富。

语法

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

value : 输出的结果,可通过EL表达式去获取

default: value的值为空时,输出默认值

escapeXml : 表示是否转换特殊字符, false 转换

set标签

  • 用于设置作用域变量的值或属性值

语法

<c:set var="变量名" value="值" target="对象名" property="属性" scope= "存储的作用域"/>

以变量的形式赋值

<c: set var="name" value="张三" scope="request"/>  //指定request作用域的name变量

以对象的形式赋值

<%
   Student stu=new Student();
   request.setAttribte("stu",stu);
%>
//通过EL表达式获取对象,给对象的name属性赋值
<c: set value="张三" target="${stu}" property="name"/> 

注意: 通过对象属性赋值时,无需指定作用域,因为在设置值之前,对象已经指定了作用域,再指定会冲突

remove标签

  • 用于移除指定作用域内的指定变量

语法

<c:remove var="<String>" scope="<String>"/>

条件标签库

if标签

  • 用于实现if语句的功能。

语法

<c:if test="条件" var ="存放表达式的执行结果" scope="变量的存储变量"/>

choose标签、when标签、otherwise标签

  • 这些标签配合实现互斥条件的执行,类似java语言的if-else if-else 语句或者switch。

语法

<c:choose>
    <c:when test="condition1">    //if 
        主体内容
    </c:when>
   <c:when test="condition2">    //else if
       主体内容
   </c:when>
    <c:otherwise>                //else
        主体内容
    </c:otherwise>
</c:choose>

如果第一个条件不符合,就会执行下面的,继续执行。

迭代标签库

forEach标签

  • 使用该标签可以很方便地实现迭代操作。

遍历两种语法格式

1.遍历集合

<c:forEach  var="引用成员的变量"  items="集合对象" varStatus="存储索引等成员相关信息"></c:forEach>

2.常规循环

<c:forEach  var="引用成员的变量"  varStatus="存储索引等成员相关信息" begin="beginIndex" end="endIndex" step="类似i++"></c:forEach>

常规循环一般用于决定循环的次数,就是普通for循环。

varStatus : 存放var属性的成员信息,如索引。

begin: 属性表示开始的位置

end: 属性表示结束的位置

step: 表示循环的步长,类似自增或自减

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_64765980/article/details/126527034

智能推荐

求链式线性表的倒数第K项_c语言 求链式线性表的倒数第k项 分数 12 作者 ds课程组 单位 浙江大学 给定一系列-程序员宅基地

文章浏览阅读565次。求链式线性表的倒数第K项给定一系列正整数,请设计一个尽可能高效的算法,查找倒数第K个位置上的数字。输入格式:输入首先给出一个正整数K,随后是若干非负整数,最后以一个负整数表示结尾(该负数不算在序列内,不要处理)。输出格式:输出倒数第K个位置上的数据。如果这个位置不存在,输出错误信息NULL。输入样例:4 1 2 3 4 5 6 7 8 9 0 -1输出样例:7标程​ 单链表版#include<map>#include<list>#include<cm_c语言 求链式线性表的倒数第k项 分数 12 作者 ds课程组 单位 浙江大学 给定一系列

使用YOLOX进行物体检测_yolox 刀具-程序员宅基地

文章浏览阅读1.4k次。YOLOX 是旷视开源的高性能检测器。旷视的研究者将解耦头、数据增强、无锚点以及标签分类等目标检测领域的优秀进展与 YOLO 进行了巧妙的集成组合,提出了 YOLOX,不仅实现了超越 YOLOv3、YOLOv4 和 YOLOv5 的 AP,而且取得了极具竞争力的推理速度。其中YOLOX-L版本以 68.9 FPS 的速度在 COCO 上实现了 50.0% AP,比 YOLOv5-L 高出 1.8% AP!还提供了支持 ONNX、TensorRT、NCNN 和 Openvino 的部署版本,本文将详细介绍如_yolox 刀具

一文搞懂 UML 类图!!!_uml类图-程序员宅基地

文章浏览阅读2.9k次,点赞27次,收藏45次。统一建模语言UML类图是一种用于描述系统结构的图形化工具。它以类和对象为基础,主要用于表示系统中的类、接口、继承关系、关联关系等元素,以及它们之间的静态结构和关系。在本文中,将深入介绍UML类图的基本元素关系类型以及如何创建一个简单而有效的类图。类图以反映类的结构(属性、操作)以及类之间的关系为主要目的,描述了软件系统的结构,是一种静态建模方法。类图用来描述系统中有意义的概念,包括具体的概念、抽象的概念、实现方面的概念等,是对现实世界中事物的抽象。_uml类图

Python数据分析之使用pandas-datareader获取国家经济信息进行分析-程序员宅基地

文章浏览阅读4.2k次,点赞4次,收藏26次。pandas-datareader背景介绍当熟悉了Pandas的两个主要数据结构:Series和DataFrame之后,我们就可以使用pandas-datareader进行金融财经数据的导入和初步分析了。pandas-datareader是基于Python的专门从一系列的公开在线数据库获取数据的工具库,该接口在urllib3库基础上实现了以客户端身份访问在线数据库的各类金融财经股票数据。相关参考网站官网官方文档GIT源码安装pandas-datareader可以使用标准的pip进_pandas-datareader

关于计算机职业发展方向,计算机专业的职业发展方向有哪些-程序员宅基地

文章浏览阅读860次。原标题:计算机专业的职业发展方向有哪些很多人都知道计算机是最近几年 比较热门的专业之一,其中薪资高待遇好是很多年轻人加入该行业的原因,但还有一些人会担心计算机专业的未来,毕竟这股“热潮”在互联网行业大裁员中变成让互联网人感觉压力山大的“寒潮”。究竟计算机的未来如何,小编不敢吹嘘说很好,但我相信计算机行业的未来肯定不会差,而且对计算机人才会越来越重视。 我们经常会听到有人说程序员是吃青春饭的,真是这..._机算机职业发展

词典编码:LZ77算法(C/C++)_lz77编码例题详解-程序员宅基地

文章浏览阅读3.2k次,点赞4次,收藏27次。一、基本思想用指向早期曾经出现过的字符串的指针来表示当前被编码的字符串,如:二、LZ77算法算法伪码:示意图:举例:三、C\C++实现#include <iostream>#include <vector>#include <string>using namespace std;struct code { int off; i..._lz77编码例题详解

随便推点

数据可视化——Matlab平台gramm工具箱绘制散点相关图_gramm工具箱画图-程序员宅基地

文章浏览阅读6k次,点赞6次,收藏30次。数据可视化——Matlab平台gramm工具箱绘制散点相关图概述:基于matlab平台的gramm工具箱绘制散点相关图使用的工具箱:gramm。gramm工具箱使得matlab平台的图形绘制能力更加强大,绘制出的图形更美观,同时,绘制图形需要设置的参数相对较少。gramm工具箱可在以下链接中下载:https://github.com/piermorel/gramm将下载好的工具箱解压之后,通..._gramm工具箱画图

Rxjava3文档级教程一: 介绍和基本使用-程序员宅基地

文章浏览阅读3.9w次,点赞33次,收藏175次。一 Rxjava3简介RxJava是响应式编程(Reactive Extensions)的java实现,它基于观察者模式的实现了异步编程接口。Rxjava 3.x 的github官网RxJava2将被支持到2021年2月28日,错误的会同时在2.x和3.x修复,但新功能只会在3.x上添加。Rxjava 3.0的一些改变:官方WikiRxjava 3.x 文档可以在官方javad..._rxjava

hssfrow 单元格样式_POI设置excle单元格样式-程序员宅基地

文章浏览阅读124次。public class ExcelTest {/*** @param args*/public static void main(String[] args) throws IOException {try {HSSFWorkbook wb = new HSSFWorkbook();HSSFSheet sheet = wb.createSheet("new sheet");HSSFCellS..._hssfrow.setcellstyle

python解析http数据包_python如何解析HTTP返回的标准数据包-程序员宅基地

文章浏览阅读1.5k次。该篇内容由个人博客点击跳转同步更新!转载请注明出处!前言最近有一个需求需要频繁调用xx接口,但这个接口调用次数一多就会给你禁掉,而且一禁就是禁一天的那种,只能通过界面模拟用户操作抓取数据包,然后单独对这些数据包进行处理具体步骤首先看下需要格式化的数据包长什么样 数据包这就是完整的一个数据包,网上基本都是格式化json数据包的,但返回的内容中还包含了头信息等所以不能简单的通过json来格式化,..._python解析http.client.httpresponse

uni-app修改button按钮样式_uniapp按钮样式怎么改-程序员宅基地

文章浏览阅读1.7k次。uni-app修改button按钮样式_uniapp按钮样式怎么改

9、数据采集系统Flume配置安装_修改文件,配置文件flume-env.sh-程序员宅基地

文章浏览阅读200次。Flume配置安装Flume是Cloudera提供的一个高可用的,高可靠的、分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。Flume特点如下:Flume可以高效率的将多个网站服务器中收集的日志信息存入HDFS/HBase中Flume可以将从多个服务器中获取的数..._修改文件,配置文件flume-env.sh

推荐文章

热门文章

相关标签