• jstl与el结合常见用法


     JSTL Functions标签库

           在JSP文件中使用Functions标签库,要先通过taglib指令引入该标签库:

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

           本章将介绍Functions标签库中常用的16个函数的用法,这些函数的名字及作用与java.lang.String类中的相应方法很相似。例如:fn:indexOf函数与类String类的indexOf()方法的作用相似,fn:substring函数与String类的substring()方法的作用相似。

    1fn:contains函数

           fn:contains函数用于判断在源字符串中是否包含目标字符串,其语法为:

                  fn:contains(String source,String target) -------boolean;

           以上source参数指定源字符串,target参数指定目标字符串,返回类型为boolean。

           例如对于以下EL表达式:

                  ${fn:contains(“Tomcat”,”cat”)}

    ${fn:contains(“Tomcat”,”CAT”)}

           第一个EL表达式的值为true,第二个EL表达式的值为false。

    2fn:containsIgnoreCase函数

           fn:containsIgnoreCase函数用于判断在源字符串中是否包含目标字符串,并且在判断时忽略大小写,其语法为:

           fn: containsIgnoreCase (String source,String target) -------boolean;

           以上source参数指定源字符串,target参数指定目标字符串,返回类型为boolean。

           例如对于以下EL表达式:

                  ${fn: containsIgnoreCase (“Tomcat”,”CAT”)}

    ${fn: containsIgnoreCase (“Tomcat”,”Mike”)}

           第一个EL表达式的值为true,第二个EL表达式的值为false。

    3 fn:startsWith函数

           fn:startsWith函数用于判断源字符串是否以指定的目标字符串开头,其语法为:

                  fn:startsWith(String source,String target) ----boolean

           以上source参数指定源字符串,target参数指定目标字符串,返回类型为boolean。

           例如对于以下EL表达式:

                  ${fn: startsWith (“Tomcat”,”Tom”)}

                  ${fn: startsWith (“Tomcat”,”cat”)}

           第一个EL表达式的值为true,第二个EL表达式的值为false。

    4 fn:endsWith函数

    fn: endsWith函数用于判断源字符串是否以指定的目标字符串结尾,其语法为:

                  fn: endsWith (String source,String target) ----boolean

           以上source参数指定源字符串,target参数指定目标字符串,返回类型为boolean。

           例如对于以下EL表达式:

                  ${fn: endsWith (“Tomcat”,”cat”)}

                  ${fn: endsWith (“Tomcat”,”Tom”)}

           第一个EL表达式的值为true,第二个EL表达式的值为false。

    5 fn:indexOf函数

           fn:indexOf函数用于在源字符串中查找目标字符串,并返回源字符串中最先与目标字符串匹配的第一个字符的索引,如果在源字符串中不包含目标字符串,就返回-1,源字符串中的第一个字符的索引为0。 fn:indexOf函数的语法为:

                  fn: indexOf (String source,String target) ----int

           以上source参数指定源字符串,target参数指定目标字符串,返回类型为int。

           例如对于以下EL表达式:

                  1     ${fn: indexOf (“Tomcat”,”cat”)}<br/>

                  2     ${fn: indexOf (“2211221”,”21”)} <br/>

                  3     ${fn: indexOf (“Tomcat”,”Mike”)} <br/>

           其输出结果为:

                  1     3

                  2     1

                  3     -1

    6 fn:replace函数

           fn:replace函数用于把源字符串中的一部分替换为另外的字符串,并返回替换后的字符串。fn:replace函数的语法为:

                  fn: replace (String source,String before,String after) ----String

           以上source参数指定源字符串,before参数指定源字符串中被替换的子字符串,after参数指定用于替换的子字符串,返回类型为String。

           例如对于以下EL表达式:

                  1     ${ fn: replace(“TomcAt”,”cAt”,”cat”)}<br/>

                  2     ${ fn: replace(“2008/1/9”,”/”,”-”)}<br/>

           其输出结果为:

                  1     Tomcat

                  2     2008-1-9

    7 fn:substring函数

           fn:substring函数用于获取源字符串中的特定子字符串,它的语法为:

                  fn:substring(String source,int beginIndex,int endIndex) ------String

           以上source参数指定源字符串,beginIndex参数表示子字符串中的第一个字符在源字符串中的索引,endIndex参数表示子字符串的最后一个字符在源字符串中的索引加1,返回类型为String,源字符串中的第一个字符的索引为0。

           例如对于以下EL表达式:

                  1     ${ fn: substring (“Tomcat”,0,3)}<br/>

                  2     ${ fn: substring (“Tomcat”,3,6)}<br/>

           其输出结果为:

                  1     Tom

                  2     cat

    8 fn:substringBefore函数

           fn:substringBefore函数用于获取源字符串中指定子字符串之前的子字符串,其语法为:

                  fn:substringBefore(String source,String target) ----String

           以上source参数指定源字符串,target参数指定子字符串,返回类型为String。如果在源字符串中不包含特定子字符串,就返回空字符串。

           例如对于以下EL表达式:

                  1     ${ fn: substringBefore (“Tomcat”,”cat”)}<br/>

                  2     ${ fn: substringBefore (“mydata.txt”,”.txt”)}<br/>

           其输出结果为:

                  1     Tom

                  2     mydata

    9 fn:substringAfter函数

           fn: substringAfter函数用于获取源字符串中指定子字符串之后的子字符串,其语法为:

                  fn: substringAfter (String source,String target) ----String

           以上source参数指定源字符串,target参数指定子字符串,返回类型为String。如果在源字符串中不包含特定子字符串,就返回空字符串。

           例如对于以下EL表达式:

                  1     ${ fn: substringAfter (“Tomcat”,”Tom”)}<br/>

                  2     ${ fn: substringAfter (“mydata.txt”,” mydata.”)}<br/>

           其输出结果为:

                  1     cat

                  2     txt

    10 fn:split函数

           fn:split函数用于将源字符串拆分为一个字符串数组,其语法为:

                  fn: split (String source,String delimiter) ----String[]

           以上source参数指定源字符串,delimiter参数指定用于拆分源字符串的分隔符,返回类型为String[]。如果在源字符串中不包含delimiter参数指定的分隔符,或者delimiter参数为null,那么在返回的字符串数组中只有一个元素,为源字符串。

           例如对于以下EL表达式:

                  <c:set value=’${ fn: split (“www.mywebsite.org”,”.”)}’ var=”strs”/>

                  <c:forEach var=”token” item=”${strs}”>

                         ${token}<br/>

                  </c:forEach>

    其输出结果为:

           www

           mywebsite

           org

    再例如对于以下代码:

           <c:set value=’${ fn: split (“www.mywebsite.org”,”-”)}’ var=”strs”/>

    ${strs[0]}

    其输出结果为:

           www.mywebsite.org

    11 fn:join函数

           fn:join函数用于将源字符串数组中的所有字符串连接为一个字符串,其语法为:

                  fn:join(String source[],String separator) ----String

           以上source参数指定源字符串数组,separator参数指定用于连接源字符串数组中的各个字符串的分隔符,返回类型为String。

           例如对于以下代码:

                  <%

                  String strs[] = {“www”,”mywebsite”,”org”};

    %>

    <c:set value=”<%=strs%>” var=”strs”/>

    ${fn:join(strs,”.”)}

           其输出结果为:

                  www. mywebsite. org

    12 fn:toLowerCase函数

           fn:toLowerCase函数用于将源字符串中的所有字符改为小写,其语法为:

                  fn:toLowerCase(String source)  -----String

           以上source参数指定源字符串,返回类型为String。

           例如对于以下EL表达式:

                  fn:toLowerCase(“TomCat”)

           其输出结果为:

                  tomcat

     fn:toUpperCase函数

           fn: toUpperCase函数用于将源字符串中的所有字符改为大写,其语法为:

                  fn: toUpperCase (String source)  -----String

           以上source参数指定源字符串,返回类型为String。

           例如对于以下EL表达式:

                  fn: toUpperCase (“TomCat”)

           其输出结果为:

                  TOMCAT

    14 fn:trim函数

           fn:trim函数用于将源字符串中的开头和末尾的空格删除,其语法为:

                  fn:trim(String source) ----String

           以上source参数指定源字符串,返回类型为String。

           例如对于以下EL表达式:

                  fn:trim(“   Tomcat   ”)

           以上EL表达式的值为“Tomcat”。

    15 fn:escapeXml函数

           fn:escapeXml函数用于将源字符串中的字符“<”、“>”、“””和“&”等转换为转义字符,本书第1章的1.2节(HTML简介)介绍了转义字符的概念。fn:escapeXml函数的行为与<c:out>标签的escapeXml属性为true时的转换行为相同,fn:escapeXml函数的语法为:

           fn:escapeXml(String source) ----String

           以上source参数指定源字符串,返回类型为String。

           例程18-1的out.jsp演示了fn:escapeXml函数的用法。

    例程18-1 out.jsp

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

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

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

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

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

    <title>out</title>

    </head>

    <body>

    1.${fn:escapeXml("<b>表示粗体字</b>") }<br/>

    2.<c:out value="<b>表示粗体字</b>" escapeXml="true"></c:out><br/>

    3.${"<b>表示粗体字</b>"}<br/>

    </body>

    </html>

           对于out.jsp中的以下代码:

                  1.${fn:escapeXml("<b>表示粗体字</b>") }<br/>

    2.<c:out value="<b>表示粗体字</b>" escapeXml="true"></c:out><br/>

    3.${"<b>表示粗体字</b>"}<br/>

           其输出结果为:

                  1.&lt;b&gt;表示粗体字&lt;/b&gt;<br/>

    2.&lt;b&gt;表示粗体字&lt;/b&gt;<br/>

    3.<b>表示粗体字</b><br/>

           out.jsp的输出结果在浏览器中的显示效果如图18-1所示。

     

    图18-1 out.jsp页面

    16 fn:length函数

           fn:length函数用于返回字符串中的字符的个数,或者集合和数组的元素的个数,其语法为:

                  fn:length(source) ---- int

           以上source参数可以为字符串、集合或者数组,返回类型为int。

           例程18-2的length.jsp演示了fn:length函数的用法。

    例程18-2 length.jsp

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

        pageEncoding="UTF-8"%>

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

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

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

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

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

    <title>length</title>

    </head>

    <body>

    <%

    int[] array = {1,2,3,4};

    ArrayList list = new ArrayList();

    list.add("one");

    list.add("two");

    list.add("three");

    %>

    <c:set value="<%=array%>" var="array"></c:set>

    <c:set value="<%=list%>" var="list"></c:set>

    数组长度:${fn:length(array)}<br/>

    集合长度:${fn:length(list)}<br/>

    字符串长度:${fn:length("Tomcat")}<br/>

    </body>

    </html>

    通过浏览器方位length.jsp,得到的页面如图18-2所示。

     

    图18-2 length.jsp

    17 小结

           Functions标签库提供了一些通用的EL函数,包括以下几种。

    l  fn:contains函数:用于判断在源字符串中是否包含目标字符串。

    l  fn:containsIgnoreCase函数:用于判断在源字符串中是否包含目标字符串,并且在判断时忽略大小写。

    l  fn:startsWith函数:用于判断源字符串是否以指定的目标字符串开头。

    l  fn: endsWith函数:用于判断源字符串是否以指定的目标字符串结尾。

    l  fn:indexOf函数:用于在源字符串中查找目标字符串,并返回源字符串中最先与目标字符串匹配的第一个字符的索引。

    l  fn:replace函数:用于把源字符串中的一部分替换为另外的字符串,并返回替换后的字符串。

    l  fn:substring函数:用于获取源字符串中的特定子字符串。

    l  fn:substringBefore函数:用于获取源字符串中指定子字符串之前的子字符串。

    l  fn: substringAfter函数:用于获取源字符串中指定子字符串之后的子字符串

    l  fn:split函数:用于将源字符串拆分为一个字符串数组。

    l  fn:join函数:用于将源字符串数组中的所有字符串连接为一个字符串。

    l  fn:toLowerCase函数:用于将源字符串中的所有字符改为小写。

    l  fn: toUpperCase函数:用于将源字符串中的所有字符改为大写。

    l  fn:trim函数:用于将源字符串中的开头和末尾的空格删除。

    l  fn:escapeXml函数:用于将源字符串中的字符“<”、“>”、“””和“&”等转换为转义字符。

    l  fn:length函数:用于返回字符串中的字符的个数,或者集合和数组的元素的个数

     

  • 相关阅读:
    关于nginx稳定版1.20.1 4层负载 stream模块失效
    Docker 容器内分析 java程序占用 cpu 高问题排查分析
    分组排序查第一第二的差值
    【album】语音合成技术
    8.juery
    7.dom
    6.对象
    5.函数
    4.数组
    3.JS
  • 原文地址:https://www.cnblogs.com/shaozhiqi/p/4922316.html
Copyright © 2020-2023  润新知