博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
## EL表达式与JSTL标签用法解读
阅读量:2493 次
发布时间:2019-05-11

本文共 2703 字,大约阅读时间需要 9 分钟。

EL表达式与JSTL标签用法解读

在这里插入图片描述

背景/作用: 为了使JSP页面写起来更加简单。给JSP 中提供简化表达式的方法,让Jsp的代码更加简化。

语法 : ${expression}

数据的操作无非就CRUD(增删改查)

EL表达式提供".“和”[]"两种运算符存取数据

存取数据

一般使用"."存取数据,在存取的属性名称中包含一些特殊字符,如 . 或 - 等并非字母或数字的符号,就一定要使用“[ ]“
使用场景
取域中user的My-age属性
${user[“My-Name”]}
取域中user的Myage属性
${user.myage}

变量

获取指定域中的数据: 域内置对象.属性名
全域查找: ${属性名}
首先从page域查找,如果page找到,返回page域数据
page没有 – 找request域,如果找到返回request域数据
request没有 – 去session域查找,如果找到返回session域数据
session没有 – 去application查找,如果找到返回application域数据
application没有 – 返回null null不显示
一般常用的是Request域/Session域
在查找过程中,找到username就直接回传,不再继续查找,如果四大域都无结果返回""

Page PageScope
PageScope RequestScope
Session SessionScope
PageScope RequestScope
Application ApplicationScope
代码样式	${
pageScope.username.age}

内置对象

EL的内置对象 都是map集合

pageScope page域
(常用)requestScope request域
(常用)sessionScope session域
applicationScore application域
param 获取请求参数 一个name 一个值
paramValues 获取请求参数 返回String类型数组 一个name对应多个值
header 获取请求头属性
headerValues 获取请求的属性,一个属性名对应多个值
initParam 获取初始化参数
cookie 获取cookie
pageContext 一个抵十个,获取真实request对象,response对象
拿到项目路径${
pageContext.request.contextPath}

JSTL标签

替换jsp的<%%> 使用标签形式

EL表达式替换的<%= %>,或者获取域中的数据
使用JSTL标签 并不是sum公司提供的,需要导入jar包
需要两个jar包 jstl.jar standard.jar

使用步骤:

1.导入jar包–>web-inf下的lib中
2.在jstl的jsp页面引入标签库:
(重点)core:核心标签库

fmt		格式化标签库<%@taglib  prefix="前缀"  uri="引入标签库的url" %>core标签库的前缀	       c<%@taglib   prefix="c"  uri=".....jsp/jstl/core"%>fmt标签库的前缀	       fmt<%@taglib   prefix="fmt"  uri=".....jsp/jstl/fmt"%>Core标签库中的标签:
out set remove url ifout
set标签:往域中存放数据,等同于setAttribute()
可选属性: scope:往哪个域中存放数据,默认page域page page域 (默认值)request request域 session session域application application域
remove标签:	删除域中的数据,等同于removeAttribute()
全域删除可选属性 scope 删除指定域
删除page域中的str
Url构造url
只要以/开头,自动加 "/项目名"
得到项目名的三种方式 <%=request.getContextPath()%> ${
pageContext.request.contextPath}/名称
(重点)if标签
条件一般是EL表达式 //...

2大于3

(重点)choose		等同于if    else if       else
//...

举个栗子

//if

3>2

//else if

3=2

3<2

//else ...
(重点)foreach标签普通for循环	for(int i=0;i<10;i++){
...}
step="值" 每次循环加的值
${
i}}
${
s.count} ${
user.name}

core标签库

转发:
重定向: </c : redirect>

fmt标签: 格式化

<%@ taglib%><%    Date    now=new   Date();    request.setAttribute("now",now);%>现在时间	${
now }value 值

数字格式化

保留多少位小数位,四舍五入
格式字符串: 0表示任意字符串,小数位位数不够,用0补位
#表示任意字符串,小数位位数不够,不补位

<%double b=12.3422    request.setAttribute("d",d);%>

在这里插入图片描述

转载地址:http://wyhrb.baihongyu.com/

你可能感兴趣的文章
PHP图形图像的典型应用 --常用图像的应用(验证码)
查看>>
Robot Framework-Ride界面介绍及库的添加
查看>>
IntelliJ IDEA 连接数据库 详细过程
查看>>
redis完全攻略
查看>>
D3---01基础的柱状图制作(转)
查看>>
Time-Varying Mesh Compression
查看>>
SocketServer源码学习(二)
查看>>
编写DLL所学所思(1)——导出函数
查看>>
POJ3006-Dirichlet's Theorem on Arithmetic Progressions
查看>>
QT分页控件,开源,供大家使用
查看>>
005.LVM删除
查看>>
Hibernate 简介(百度)
查看>>
深入理解 KVC\KVO 实现机制 — KVC
查看>>
Android develop 国际化
查看>>
oralce之存储过程
查看>>
Redis源代码分析之sds, 动态数组
查看>>
macOS下Apache+nginx+mysql+php多版本切换的配置
查看>>
写在前面
查看>>
[转]上下拉电阻
查看>>
JSP(Servlet)中从连接池获取连接
查看>>