jsp中删除_JavaWeb - EL 表达式 和 JSP 标准标签库

27f388b141ef8864835247b9449cd09a.png

EL - Expression Language

Basic Concept

EL 表达式提供了在 JSP 中简化表达式的方法,可以方便地访问各种数据并输出。

Main Function

依次访问 pageContext、request、session 和 application 作用域对象存储的数据。

获取请求参数值。

访问 Bean 对象的属性。

访问集合中的数据。

输出简单的运算结果。

访问内置对象的数据

用 EL 实现:${ varName }

访问请求参数的数据

在 EL 之前使用下列方式访问请求参数的数据

request.getParameter(name);request.getParameterValues(name);

在 EL 中使用下列方式访问请求参数的数据

param:接收的参数只有一个值。

paramValues:接受的参数有多个值。

${param.name}${paramValues.hobby[0]}

访问 Bean 对象的属性

访问方式

方式一: ${对象名.属性名},例如:${user.name} 方式二: ${对象名[“属性名”]},例如:${user["name"]}

主要区别

当要存取的属性名中包含一些特殊字符,如: . 或 , 等并非字母或数字的符号,就一定要使用 [] 而不是 . 的方式。

使用 [] 的方式可以动态取值,具体方式如下:

获取到的姓名是:${person.name}
获取到的年龄是:${person.age}
获取到的姓名是:${person["name"]}
获取到的年龄是:${person["age"]}
动态取值的结果为:${person[var1]}

访问集合中的数据

 list = new LinkedList<>();    list.add("two");    list.add("one");    list.add("three");    // 将整个集合放入指定的内置对象中    pageContext.setAttribute("list", list);​    // 准备一个 Map 集合并添加数据    Map map = new HashMap<>();    map.put("one", 1);    map.put("two", 2);    map.put("th.ree", 3);    // 将整个集合放入指定的内置对象中    pageContext.setAttribute("map", map);%>集合中下标为 0 的元素是:${list[0]}
集合中下标为 1 的元素是:${list[1]}
集合中下标为 2 的元素是:${list[2]}整个 Map 集合中的元素有:${map}
获取带有特殊字符 key 对应的数值为:${map["th.ree"]}

常用的内置对象

JSP

pageContext - 处理当前页面

作用域

pageScope - 同页面作用域属性名称和值有关的 Map 类 requestScope - 同请求作用域属性的名称和值有关的 Map 类 sessionScope - 同会话作用域属性的名称和值有关的 Map 类 applicationScope - 同应用程序作用域属性的名称和值有关的 Map 类

请求参数

param - 根据名称存储请求参数的值的 Map 类 paramValues - 把请求参数的所有值作为一个 String 数组来存储的 Map 类

请求头

header - 根据名称存储请求头主要值的 Map 类 headerValues - 把请求头的所有值作为一个 String 数组来存储的 Map 类

Cookie

cookie - 根据名称存储请求附带的 cookie 的 Map 类

初始化参数

initParam - 根据名称存储 Web 应用程序上下文初始化参数的 Map 类

常用的运算符

​ia 的数值为:${ia}
ib 的数值为:${ib}
b1 的数值为:${b1}
b2 的数值为:${b2}

算术运算符

ia+ib 的结果为:${ia+ib}
ia-ib 的结果为:${ia-ib}
ia*ib 的结果为:${ia*ib}
ia/ib 的结果为:${ia/ib}
ia%ib 的结果为:${ia%ib}

关系运算符

ia 大于 ib 的结果为:${ia > ib}
ia 大于等于 ib 的结果为:${ia >= ib}
ia 小于 ib 的结果为:${ia < ib}
ia 小于等于 ib 的结果为:${ia <= ib}
ia 等于 ib 的结果为:${ia == ib}
ia 不等于 ib 的结果为:${ia != ib}

逻辑运算符

b1 并且 b2 的结果为:${b1 && b2}
b1 或者 b2 的结果为:${b1 || b2}
b1 取反的结果为:${ !b1 }
b2 取反的结果为:${ !b2 }

条件运算符和验证运算符

Null 值、无元素的集合或数组、长度为零的 String 都被认为是空值。

 list1 = new LinkedList<>();    List list2 = Arrays.asList(11, 22, 33, 44, 55);​    request.setAttribute("str1", str1);    request.setAttribute("str2", str2);    request.setAttribute("str3", str3);    request.setAttribute("list1", list1);    request.setAttribute("list2", list2);%>ia 和 ib 之间的最大值为:${ia>ib ? ia : ib}
判断是否为空的结果是:${empty str1}
判断是否为空的结果是:${empty str2}
判断是否为空的结果是:${empty str3}
判断是否为空的结果是:${empty list1}
判断是否为空的结果是:${empty list2}

JSTL - JSP Standard Tag Libraries

Basic Concept

JSTL 被称为 JSP 标准标签库。 开发人员可以利用这些标签取代 JSP 页面上的 Java 代码,从而提高程序的可读性,降低程序的维护难度。

How to Use JSTL

下载 JSTL 的 jar 包并添加到项目中,下载地址为:https://tomcat.apache.org/download-taglibs.cgi

在JSP页面中使用 taglib 指定引入 JSTL 标签库:

Core Tags

常用核心标签

输出标签

用来将指定内容输出的标签

设置标签

用来设置属性范围值的标签

删除标签

用来删除指定数据的标签

单条件判断标签

多条件判断标签

循环标签

Function Tags

常用函数标签

原始字符串为:${var}
判断该字符串是否包含指定字符串的结果为:${fn:contains(var, "Hello")}
将字符串中所有字符转换为大写的结果为:${fn:toUpperCase(var)}
将字符串中所有字符转换为小写的结果为:${fn:toLowerCase(var)}

Formatting Tags

常用格式化标签

当前系统时间为:${date}格式化后的时间:

JSP Custom Tags

如果上面几个标签不能满足需求,程序员也可以自定义标签。步骤如下。

  • 编写标签类继承 SimpleTagSupport 类或 TagSupport 类并重写 doTag 方法或 doStartTag 方法。
public class HelloTag extends SimpleTagSupport {    private String name;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    @Override    public void doTag() throws JspException, IOException {        JspWriter out = this.getJspContext().getOut();        out.println("自定义标签的参数为:" + name);    }}
  • 定义标签库文件(tld 标签库文件)并配置标签说明文件到到 WEB-INF 目录下。
​    1.0myhttp://renda.com​        hellocom.renda.HelloTagemptynametrue
  • 在 JSP 中添加 taglib 指令引入标签库使用:

想了解更多,欢迎关注我的微信公众号:Renda_Zhang

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值