Java学习路线-53:EL(表达式语言)入门及 EL 函数库
2023-09-14 09:07:12 时间
第 8 章 : EL(表达式语言)入门及 EL 函数库
课时 27 EL 入门
EL 是 JSP 内置的表达式语言
jsp2.0 开始,EL 表达式和动态标签来替代 java 脚本
EL 替代 <%=%>
<% pageContext.setAttribute("name", "pageContext");%>
<% request.setAttribute("name", "request");%>
<% session.setAttribute("name", "session");%>
<% application.setAttribute("name", "application");%>
<!-- 全域查找 -->
${name} <br/>
<!-- pageContext -->
<!-- 指定域查找 -->
${requestScope.name} <br/>
${pageScope.name} <br/>
${sessionScope.name} <br/>
${applicationScope.name} <br/>
课时 28 EL 11 个内置对象
无需创建即可使用
pageScope
requestScope
sessionScope
applicationScope
param
paramValues
header
haderValues
iniParam
cookie
pageContext
<jsp:useBean id="person" class="com.pengshiyu.bean.Person" scope="page" />
<jsp:setProperty name="person" property="name" value="Tom" />
<jsp:getProperty name="person" property="name" />
<!-- 等价于 -->
${person.name}
1、param 和 paramValues
param 获取单值
paramValues 获取多值
请求地址 /?name=Tom&numbers=1&numbers=2
${param.name}
${paramValues.numbers[0]}
${paramValues.numbers[1]}
2、header 和 haderValues
${header['user-agent']}
${header["User-Agent"]}
3、iniParam
iniParam 可以获取 <context-param>
配置参数
<context-param>
<param-name>key1</param-name>
<param-value>value1</param-value>
</context-param>
<context-param>
<param-name>key2</param-name>
<param-value>value2</param-value>
</context-param>
4、cookie
<!-- 获取cookie对象再获取值 -->
${cookie.JSESSIONID.value}
<!-- 等价于 -->
${pageContext.session.id}
5、pageContext
${pageContext.request.contextPath}
课时 29 EL 函数库
由 JSTL 提供
引人
<%@ taglib prefix="fn"
uri="http://java.sun.com/jsp/jstl/functions" %>
函数
函数 描述
fn:contains() 测试输入的字符串是否包含指定的子串
fn:containsIgnoreCase() 测试输入的字符串是否包含指定的子串,大小写不敏感
fn:endsWith() 测试输入的字符串是否以指定的后缀结尾
fn:escapeXml() 跳过可以作为XML标记的字符
fn:indexOf() 返回指定字符串在输入字符串中出现的位置
fn:join() 将数组中的元素合成一个字符串然后输出
fn:length() 返回字符串长度
fn:replace() 将输入字符串中指定的位置替换为指定的字符串然后返回
fn:split() 将字符串用指定的分隔符分隔然后组成一个子字符串数组并返回
fn:startsWith() 测试输入字符串是否以指定的前缀开始
fn:substring() 返回字符串的子集
fn:substringAfter() 返回字符串在指定子串之后的子集
fn:substringBefore() 返回字符串在指定子串之前的子集
fn:toLowerCase() 将字符串中的字符转为小写
fn:toUpperCase() 将字符串中的字符转为大写
fn:trim() 移除首尾的空白符
使用实例
<%@ taglib prefix="fn"
uri="http://java.sun.com/jsp/jstl/functions" %>
${fn:toUpperCase("hello")}
<!-- HELLO -->
课时 30 EL 自定义函数库
1、定义函数
com/pengshiyu/fn/MyFunctions.java
package com.pengshiyu.fn;
public class MyFunctions {
public static String hello(){
return "hello";
}
}
2、配置函数
webapp/WEB-INF/custom.tld
<?xml version="1.0" encoding="utf-8"?>
<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>Example TLD with Body</short-name>
<function>
<name>hello</name>
<function-class>com.pengshiyu.fn.MyFunctions</function-class>
<function-signature>java.lang.String hello()</function-signature>
</function>
</taglib>
3、使用函数
webapp/demo.jsp
<%@ taglib prefix="fn"
uri="/WEB-INF/custom.tld" %>
${fn:hello()}
相关文章
- 【MyBatis学习06】_parameter:解决There is no getter for property named in class java.lang.String
- JAVA学习(六):JAVA中的继承及其常见问题分析
- java实现第四届蓝桥杯买不到的数目
- Java实现 蓝桥杯 算法提高 扶老奶奶过街
- Java实现 蓝桥杯 算法提高 因式分解
- 假如时光倒流,我会这么学习Java
- java核心知识点学习----多线程间的数据共享和对象独立,ThreadLocal详解
- java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器
- java struts2入门学习--基于xml文件的声明式验证
- RPC学习----Thrift快速入门和Java简单示例
- java struts2入门学习---自定义类型转换
- Java每日一练(20230314)
- Java语言基础学习(二)
- Error:Execution failed for task ‘:app:transformNative_libsWithStripDebugSymbolForDebug‘.> java.io.IO
- 结合Java和机器学习技术,如何驾驭大数据提升业务效率和竞争力?
- Java学习路线-35:List集合
- Java 强引用、软引用、弱引用、幻象引用有什么区别
- JAVA card 应用程序开发(七) JAVA 卡数据(永久数据/)时间数据