JSTL函数库

news/2024/5/18 13:57:49 标签: JSTL

-------------------------------- JSTL函数库----------------------------------

EL函数库

 

1 什么EL函数库

  EL函数库是由第三方对EL的扩展,我们现在学习的EL函数库是由JSTL添加的。下面我们会学习JSTL标签库。

EL函数库就是定义一些有返回值的静态方法。然后通过EL语言来调用它们!当然,不只是JSTL可以定义EL函数库,我们也可以自定义EL函数库。

  EL函数库中包含了很多对字符串的操作方法,以及对集合对象的操作。例如:${fn:length(“abc”)}会输出3,即字符串的长度。

 

2 导入函数库

  因为是第三方的东西,所以需要导入。导入需要使用taglib指令!

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

 

3 EL函数库介绍

  1. String toUpperCase(String input):
  2. String toLowerCase(String input):
  3. int indexOf(String input, String substring):
  4. boolean contains(String input, String substring):
  5. boolean containsIgnoreCase(String input, String substring):
  6. boolean startsWith(String input, String substring):
  7. boolean endsWith(String input, String substring):
  8. String substring(String input, int beginIndex, int endIndex):
  9. String substringAfter(String input, String substring):
  10. substringBefore(String input, String substring):
  11. String escapeXml(String input):
  12. String trim(String input):
  13. String replace(String input, String substringBefore, String substringAfter):
  14. String[] split(String input, String delimiters):
  15. int length(Object obj):
  16. String join(String array[], String separator):

 

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

String[] strs = {"a", "b","c"};

List list = new ArrayList();

list.add("a");

pageContext.setAttribute("arr", strs);

pageContext.setAttribute("list", list);

%>

${fn:length(arr) }<br/><!--3-->

${fn:length(list) }<br/><!--1-->

${fn:toLowerCase("Hello") }<br/> <!-- hello -->

${fn:toUpperCase("Hello") }<br/> <!-- HELLO -->

${fn:contains("abc", "a")}<br/><!-- true -->

${fn:containsIgnoreCase("abc", "Ab")}<br/><!-- true -->

${fn:contains(arr, "a")}<br/><!-- true -->

${fn:containsIgnoreCase(list, "A")}<br/><!-- true -->

${fn:endsWith("Hello.java", ".java")}<br/><!-- true -->

${fn:startsWith("Hello.java", "Hell")}<br/><!-- true -->

${fn:indexOf("Hello-World", "-")}<br/><!-- 5 -->

${fn:join(arr, ";")}<br/><!-- a;b;c -->

${fn:replace("Hello-World", "-", "+")}<br/><!-- Hello+World -->

${fn:join(fn:split("a;b;c;", ";"), "-")}<br/><!-- a-b-c -->

 

${fn:substring("0123456789", 6, 9)}<br/><!-- 678 -->

${fn:substring("0123456789", 5, -1)}<br/><!-- 56789 -->

${fn:substringAfter("Hello-World", "-")}<br/><!-- World -->

${fn:substringBefore("Hello-World", "-")}<br/><!-- Hello -->

${fn:trim("     a b c     ")}<br/><!-- a b c -->

${fn:escapeXml("<html></html>")}<br/> <!-- <html></html> -->

 

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@page import="java.util.*" %>

<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<body>

       <%

              String[] arr = {"a","b","c"};

              pageContext.setAttribute("arr", arr);

              List list = new ArrayList();

              list.add(1);

              list.add(2);

              pageContext.setAttribute("list", list);

        %>

        <%--打印数组的长度 --%>

        ${fn:length(arr) }<br>

        <%--打印list集合的长度 --%>

        ${fn:length(list) }<br>

        <%--把英文字母变成大写 --%>

        ${fn:toUpperCase("abc") }<br>

        <%--把英文字母变成小写 --%>

        ${fn:toLowerCase("ABC") }<br>

        <%--判断第一个字符串是否包含第二个字符串 --%>

        ${fn:contains("www.likunpeng.com","likunpeng") }<br>

        <%--忽略大小写判断第一个字符串是否包含第二个字符串 --%>

        ${fn:containsIgnoreCase("www.likunpeng.com","LIKUNPENG") }<br>

        <%--判断数组或集合中是否包含某一个值 --%>

        ${fn:contains(arr,"a") }<br>

        <%--忽略大小写判断数组或集合中是否包含某一个值 --%>

        ${fn:containsIgnoreCase(arr,"A") }<br>

        <%--判断第一个字符串是否以第二个字符串结尾 --%>

        ${fn:endsWith("www.likunpeng.com","com") }<br>

        <%--判断第一个字符串是否以第二个字符串开头 --%>

        ${fn:startsWith("www.likunpeng.com","www") }<br>

        <%--查询索引 --%>

        ${fn:indexOf("likunpeng","p") }<br>

        <%--将数组的值用指定字符连接起来 --%>

        ${fn:join(arr,"-") }<br>

        <%-- 替换字符串中的字符 ,第二个字符是要替换的字符,第三个字符是替换后的字符--%>

        ${fn:replace("www.likunpeng.com","com","cn") }<br>

        <%-- 将字符串按指定字符分割成数组,再用指定字符将字符串数组连接起来 --%>

        ${fn:join(fn:split("www.likunpeng.com","."),"-") }<br>

        <%--字符串的截取,第二个参数是开始索引包含,第三个参数是结束索引不包含,如果第三个参数是-1代表截取后面全部长度 --%>

        ${fn:substring("likunpeng",2,5) }<br>

        ${fn:substring("likunpeng",2,-1) }<br>

        <%-- 按第二个参数开始截取后面全部长度,第二个参数必须是字符,不包含--%>

        ${fn:substringAfter("likunpeng","p") }<br>

        <%-- 按第二个参数开始截取字符串前面全部长度,第二个参数必须是字符,不包含--%>

        ${fn:substringBefore("likunpeng","p") }<br>

        <%--去掉字符串的前后的空格,中间的不会去掉 --%>

        ${fn:trim("  l i k u n   ") }<br>

        <%-- 避开xml文件解析,输出xml格式源代码,如果直接输出xml格式字符串,会被解析--%>

        ${fn:escapeXml("<font color=red>www.likunpeng.com<font>") }<br>

</body>

</html>

 


http://www.niftyadmin.cn/n/1564373.html

相关文章

SSM项目从零开始到入门032-mybatis的多对多关联映射

本篇我们讲解mybatis的多对多映射依据上图&#xff0c;我们要实现要查询用户以及用户所购买的商品信息&#xff0c;经过分析用户和商品数据库级别没有任何关系&#xff0c;用户和商品需要建立关系&#xff0c;要通过订单&#xff0c;订单明细建立关系。根据这个需求&#xff0c…

在编写jsp的时候Myeclipse中 报错 Syntax error on token Invalid Regular Expression Options, no accurate corre

在编写jsp的时候Myeclipse中 报错 Syntax error on token "Invalid Regular Expression Options", no accurate correc解决办法 选中报错的jquery文件“jquery-1.2.6.min.js”。右键选择 MyEclipse-->Exclude From Validation 。再右键选择 MyEclipse-->Run V…

敏捷软件开发之用户故事

2019独角兽企业重金招聘Python工程师标准>>> 知识介绍 用户故事是从用户的角度来描述用户渴望得到的功能。一个好的用户故事包括三个要素&#xff1a; 1. 角色&#xff1a;谁要使用这个功能。 2. 活动&#xff1a;需要完成什么样的功能。 3. 商业价值&a…

SSM项目从零开始到入门033-mybatis的延时加载

1、什么是延迟加载延迟加载(lazy load)是(也称为懒加载)是为了避免一些无谓的性能开销而提出来的&#xff0c;所谓延迟加载就是当在真正需要数据的时候&#xff0c;才真正执行数据加载操作。可以简单理解为&#xff0c;只有在使用的时候&#xff0c;才会发出sql语句进行查询。举…

运维自动化之使用Cobbler自动化安装系统与FAQ

以前在没有kickstart的时候&#xff0c;安装系统都是通过光盘来安装&#xff0c;如果数量大的话&#xff0c;就会很浪费时间&#xff0c;有了kickstart&#xff0c;通过pxedhcptftp配合kickstart&#xff0c;这样安装系统就方便了很多&#xff0c;现在开源社区里的cobbler工具&…

SSM项目从零开始到入门034-mybatis的SQL语句构建器

MyBatis在它的XML映射特性中有一个强大的动态SQL生成方案。但有时在Java代码内部创建SQL语句也是必要的。此时&#xff0c;MyBatis有另外一个特性可以帮到你&#xff0c;在减少典型的加号,引号,新行,格式化问题和嵌入条件来处理多余的逗号或 AND 连接词之前。在Java代码中来动态…

ASIHTTPRequest使用心得

2019独角兽企业重金招聘Python工程师标准>>> 1、 [NSURL URLWithString:urlString]&#xff0c;urlString的类型必须正确&#xff0c;必须以http或者https开头&#xff0c;在一次项目中因为在http前面多了个空格&#xff0c;导致字符串转化为NSURL类型时为空。 2、…

SSM项目从零开始到入门035-mybatis通用mapper的使用

对单表进行增删改查是项目中不可避免的需求&#xff0c;Mybatis的通用Mapper插件使这些操作变得简单&#xff0c;通用Mapper都可以极大的方便开发人员。 通用mapper的优点&#xff1a; 1.可以随意的按照自己的需要选择通用方法&#xff0c;还可以很方便的开发自己的通用方法。 …