版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第7章
EL与JSTL本章目标掌握EL表达式语言的语法及使用掌握EL中隐含对象的使用掌握EL中运算符的使用掌握JSTL核心标签库的使用熟悉JSTL国际化标签库的使用熟悉JSTLEL函数库的使用EL(ExpressionLanguage,表达式语言)是一种简单的语言,可以方便地访问和处理应用程序数据,而无需使用JSP脚本元素(Scriptlet)或JSP表达式。EL最初是在标准标签库JSTL(JavaServerPageStandardTagLibrary)1.0中定义,从JSTL1.1开始,SUN公司将EL表达式语言从JSTL规范中分离出来,正式独立为JSP2.0标准规范之一。因此,只要是支持Servlet2.4、JSP2.0以上版本的Web容器,都可以在JSP网页中直接使用EL。EL简介EL在容器默认配置下处于启用状态,每个JSP页面也可以通过page指令的isELIgnored属性单独设置其状态。【语法】其中:如果isELIgnored属性取值为true,则EL表达式会被当成字符串直接输出;默认情况下isELIgnored属性取值为false,由JSP引擎调用EL引擎来解释执行其中的表达式。EL的启用<%@pageisELIgnored="true|false"%>EL表达式语言最大的优势是可以方便的访问JSP的隐含对象和JavaBean组件,完成使用“<%%>”或“<%=%>”完成的功能,使JSP页面从HTML代码中嵌入Java代码的混乱结构得以改善,提高了程序的可读性和易维护性。综合概括起来,EL表达式具有如下几个特点:可以访问JSP的内置对象(pageContext、request、session、application等);简化了对JavaBean、集合的访问方式;可以对数据进行自动类型转换;可以通过各种运算符进行运算;可以使用自定义函数实现更加复杂的业务功能。EL的优势【语法】EL语法格式由“${”起始,“}”结束,表达式可以是常量、变量,表达式中可以使用EL隐含对象、EL运算符和EL函数。【示例】EL表达式EL语法${表达式}${"hello"}//输出字符串常量${23.5}//输出浮点数常量${23+5}//输出算术运算结果${23>5}//输出关系运算结果${23||5}//输出逻辑运算结果${23>5?23:5}//输出条件运算结果${emptyusername}//输出empty运算结果${username}//查找输出变量值${sessionScope.user.sex}//输出隐含对象中的属性值${qst:fun(arg)}//输出自定义函数的返回值EL表达式中的常量包括:布尔常量、整形常量、浮点数常量、字符串常量和NULL常量。布尔常量,用于区分事物的正反两面,用true或false表示。例如:${true}。整型常量,与Java中定义的整型常量相同,范围为Long.MIN_VALUE到Long.MAX_VALUE之间。例如:${23E2}。浮点数常量,与Java中定义的浮点数常量相同,范围为Double.MIN_VALUE到Double.MAX_VALUE之间。例如:${23.5E-2}。字符串常量,是用单引号或双引号引起来的一连串字符。例如:${"你好!"}。NULL常量,用于表示引用的对象为空,用null表示,但在EL表达式中并不会输出“null”而是输出空。例如:${null},页面会什么也不输出。EL中的常量EL表达式中的变量不同于JSP表达式从当前页面中定义的变量进行查找,而是由EL引擎调用PageContext.findAttribute(String)方法从JSP四大作用域范围中查找。例如:${username},表达式将按照page、request、session、application范围的顺序依次查找名为username的属性;假如中途找到,就直接回传,不再继续找下去;假如全部的范围都没有找到,就回传null。EL中的变量在使用EL表达式访问某个变量时,应该指定查找的范围,从而避免在不同作用范围中有同名属性的问题,同时也提高了查询效率。注意EL中的变量除了要遵循Java变量的命名规范外,还需注意不能使用EL中的保留字。EL中预留的保留字:EL中的变量andornotemptydivmodinstanceofeqneltgtlegetruefalsenullEL提供了两种操作符:“.”操作符和“[]”操作符:“.”操作符,与在Java代码中一样,EL表达式也可使用点操作符来访问对象的某个属性。“[]”操作符,用与点操作符类似,也用于访问对象的属性,属性需使用双引号括起来。“[]”操作符具有更加强大的功能:当属性中包含了特殊字符,如:“.”或“-”等并非字母或数字的符号,就一定要用“[]”操作符,例如:${header["user-agent"]};“[]”操作符可以访问有序集合或数组中的指定索引位置的某个元素,例如:${array[0]};“[]”操作符可以访问Map对象的key关键字的值,例如:${map["key"]};“[]”操作符和点操作符可以结合使用,例如:${users[0].username}。EL中的.和[]操作符作为表现层的JSP页面的错误处理,往往对用户会有直观的体现,为此EL提供了比较友好的处理方式:不提供警告,只提供默认值和错误,默认值是空字符串,错误是抛出一个异常。EL对以下几种常见错误的处理方式:在EL中访问一个不存在的变量,则表达式输出空字符串,而不是输出“null”;在EL中访问一个不存在对象的属性,则表达式输出空字符串,而不会抛出NullPointerException异常;在EL中访问一个存在对象的不存在属性,则表达式会抛出PropertyNotFoundException异常。EL的错误处理机制与JSP提供的内置对象目的相同,为了更加方便的进行数据访问,EL表达式也提供了一系列可以直接使用的隐含对象。EL隐含对象在JSP中有四种作用域(页面域、请求域、会话域、应用域),EL表达式针对这四种作用域提供了相应的隐含对象用于获取各作用域范围中的属性。与范围有关的隐含对象隐含对象说明pageScope用于获得页面作用范围中的属性值,相当于pageContext.getAttribute()requestScope用于获得请求作用范围中的属性值,相当于request.getAttribute()sessionScope用于获得会话作用范围中的属性值,相当于session.getAttribute()applicationScope用于获得应用程序作用范围中的属性值,相当于application.getAttribute()请求参数的获取也是JSP开发中常见的操作,EL表达式对此也提供了相应的隐含对象:与请求参数有关的隐含对象隐含对象说明param用于获得请求参数的单个值,相当于request.getParameter()paramValues用于获得请求参数的一组值,相当于request.getParameterValues()EL表达式语言提供的其他隐含对象其他隐含对象隐含对象说明pageContext相当于JSP页面中的pageContext对象,用于获取ServletContext、request、response、session等其它JSP内置对象header用于获得HTTP请求头中的单个值,相当于request.getHeader(Stringname)headerValues用于获得HTTP请求头中的一组值,相当于request.getHeaders(Stringname)cookie用于获得指定的CookieinitParam用于获得上下文初始参数,相当于application.getInitParameter(Stringname)EL表达式中的算术运算符需要注意的是,在除法运算中,操作数将被强制转换为Double然后进行相除运算。算术运算符算数运算符说明示例结果+加${23+5}28-减${23-5}18*乘${23*5}115/或div除${23/5}或${23div5}4.6%或mod取余${23%5}或${23mod5}3EL表达式中的关系运算符关系运算符算数运算符说明示例结果==或eq等于${23==5}或${23eq5}false!=或ne不等于${23!=5}或${23ne5}true<或lt小于${23<5}或${23lt5}false>或gt大于${23>5}或${23gt5}true<=或le小于等于${23<=5}或${23le5}false>=或ge大于等于${23>=5}或${23ge5}trueEL表达式中的逻辑运算符逻辑运算符算数运算符说明示例结果&&或and逻辑与${true&&true}或${trueandtrue}true||或or逻辑或${true||false}或${trueortrue}true!或not逻辑非${!true}或${nottrue}falseEL表达式中条件运算符的格式为:A?B:C,表示根据表达式A的结果选择执行B或C。首先将表达式A的计算结果转换为布尔类型,如果表达式A的计算结果为true,则执行B,否则执行C。【示例】条件运算符的使用示例判断若session对象中不存在username属性,则EL表达式输出“游客”常量值,否则输出username属性值。条件运算符${sessionScope.username==null?"游客":sessionScope.username}empty运算符是一个前缀操作符,用于检测一个值是否为null或“空”,运算结果为布尔类型。empty运算符有一个操作数,可以是变量或表达式。empty运算符按如下规则计算其返回值:当操作数指向的对象为null时,表达式返回true;当操作数是空字符串时,返回true;当操作数是集合或数组时,如果操作数中没有任何元素,返回true;当操作数是java.util.Map对象中的一个关键字时,如果Map对象为空、Map对象没有指定的关键字或Map对象的关键字对应的值为空,表达式返回true。empty运算符${emptysessionScope.username}运算符的优先级如下表,优先级从上到下、从左到右依次降低。运算符优先级[]、.()-(取负数)、not、!、empty*、/、div、%、mod+、-<、>、<=、>=、lt、gt、lege==、!=、eq、ne&&、and||、or?:JSTL(JavaServerPagesStandardTagLibrary,JSP标准标签库)是由Apache的Jakarta项目组开发的一个标准的通用型标签库,已纳入JSP2.0规范,是JSP2.0最重要的特性之一。JSTL主要提供给JavaWeb开发人员一个标准通用的标签函数库,标签库同时支持EL用于获取数据,Web开发人员能够利用此标签库取代传统直接在页面中嵌入Java程序的做法,以提高程序的可读性和易维护性。JSTL简介【示例】使用Java脚本实现对象集合的遍历【示例】使用JSTL实现对象集合的遍历JSTL简介<%List<Book>bookList=(List<Book>)session.getAttribute("bookList");if(bookList!=null) for(Bookbook:bookList){ out.print(book.getBookName()); }%><c:forEachitems="${sessionScope.bookList}"var="book"> ${book.bookName}</c:forEach>JSTL由5个不同功能的标签库组成,在JSTL规范中为这5个标签库分别指定了不同的URI,并对标签库的前缀作出了约定。JSTL函数库分类标签库前缀名称URI示例核心标签库c/jsp/jstl/core<c:out>I18N标签库fmt/jsp/jstl/fmt<fmt:formatDate>SQL标签库sql/jsp/jstl/sql<sql:query>XML标签库x/jsp/jstl/xml<x:forBach>函数标签库fn/jsp/jstl/functions<fn:split>要使用JSTL,首先需要下载JSTL标签库的jar包。Tomcat10版本安装JSTL库需使用以下两个jar包:jakarta.servlet.jsp.jstl-2.0.0.jar;jakarta.servlet.jsp.jstl-api-2.0.0.jar。其官方下载地址为https://jakarta.ee/zh/specifications/tags/2.0/,此处选择JSTL2.0版本JSTL的安装使用JSTL的核心标签库包含Web应用中最常使用的标签,是JSTL中比较重要的标签库。核心标签库中的标签按功能又可细分为以下四类:通用标签,用于操作变量;条件标签,用于流程控制;迭代标签,用于循环遍历集合URL标签,用于针对URL相关的操作。核心标签库在JSP页面中使用核心标签库,首先需要使用taglib指令导入,语法格式如下:其中:prefix属性表示标签库的前缀,可以为任意字符串,通常设置值为“c”,注意避免使用一些保留的关键字,例如:jsp、jspx、java、servlet、sun、sunw等;uri属性用来指定核心标签库的URI,从而定位标签库描述文件(TLD文件)。【示例】导入核心标签核心标签库<%@taglibprefix="标签库前缀"uri="/jsp/jstl/core"%><%@taglibprefix="c"uri="/jsp/jstl/core"%>JSTL的通用标签按照对变量的不同操作又可分为四个标签:<c:out>标签<c:set>标签<c:remove>标签<c:catch>标签通用标签<c:out>标签用于输出数据,等同于<%=表达式%>。【语法】其中:value表示要输出的数据,可以是JSP表达式、EL表达式或静态值;escapeXml表示是否将>、<、&、'、"等特殊字符进行HTML字符实体转换后再进行输出,默认值为true;default表示如果value属性的值为null时所输出的默认值。【示例】设置默认值的输出上述示例在session域属性userName不存在时输出默认值游客,否则输出属性值。<c:out>标签<c:outvalue="value"[escapeXml="{true|false}"][default="defaultValue"]/>您好!<c:outvalue="${sessionScope.userName}"default="游客"/>【示例】进行HTML字符实体转换后的输出上述示例设置进行HTML字符实体转换,输出结果为“<b>没有变成粗体字</b>”。常见的HTML字符实体转换关系<c:out>标签<c:outvalue="<b>没有变成粗体字</b>"escapeXml="true"></c:out>字符字符实体编码<<>>&&''""<c:set>标签用于设置各种范围域的属性。【语法】其中:var指定要设置的范围域属性名;value指定var属性的属性值;scope指定var属性所属的范围域,默认为page。<c:set>标签<c:setvar="varName"value="value"[scope="{page|request|session|application}"]/><c:remove>标签用于删除各种范围域属性。【语法】其中:var属性用于指定要删除的属性名称;scope属性用于指定要删除的属性所属的范围域。【示例】从Session中删除属性<c:remove>标签<c:removevar="varName"[scope="{page|request|session|application}"]/><c:removevar="userName"scope="session"/><c:catch>标签用于捕获嵌套在标签体中的内容抛出的异常。【语法】其中:var属性用于标识捕获的异常对象名称,并将异常对象保存在page域中;若未指定var属性,则仅捕获异常而不在page域中保存异常对象。<c:catch>标签<c:catch[var="varName"]> nestedactions</c:catch>JSP页面中经常需要进行显示逻辑的条件判断,JSTL提供了四个条件标签用于取代JSP的脚本代码。四个条件标签包括:<c:if>标签<c:choose>标签<c:when>标签<c:otherwise>标签条件标签<c:if>标签用于进行条件判断。【语法】其中:test用于指定条件表达式,返回boolean类型值;var用于指定将test属性的执行结果保存到某个范围作用域的属性名称;scope用于指定将test属性的执行结果保存到哪个范围作用域中。<c:if>标签<c:iftest="condition"[var="varName"] [scope="{page|request|session|application}"]> //condition为true时执行的代码</c:if>用于指定多个条件选择,必须与<c:when>和<c:otherwise>标签一起使用。同时使用<c:choose>、<c:when>和<c:otherwise>三个标签,可以构造类似“if-elseif-else”的复杂条件判断结构。【语法】<c:choose>标签没有属性,它的标签体内容只能有:空白、一个或多个<c:when>、0或多个<c:otherwise>。<c:choose>标签<c:choose> //<c:when>和<c:otherwise>子标签</c:choose>代表<c:choose>标签的一个条件分支,必须以<c:choose>为父标签,且必须在<c:otherwise>标签之前。【语法】<c:when>标签<c:whentest="condition"> //condition为true时,执行的代码<c:when>代表<c:choose>标签中前面所有<c:when>标签条件都不符合的情况下的最后选择。【语法】<c:otherwise>标签<c:otherwise> //执行的代码<c:otherwise>数据的迭代操作是JSP开发中经常使用的操作,JSTL提供的迭代标签配合EL表达式极大的简化了原来使用Java脚本for循环完成的迭代操作代码。JSTL中的迭代标签有:<c:forEach><c:forTokens>迭代标签<c:forEach>标签用于遍历集合或迭代指定的次数。【语法】其中:var用于指定将当前迭代到的元素保存到page域中的属性名称;items指定将要迭代的集合对象;varStatus表示当前被迭代到的对象的状态信息,包括四个属性:index(表示当前迭代成员的索引值)、count(表示当前已迭代成员的数量)、first(表示当前迭代到的成员是否为第一个)、last(表示当前迭代到的成员是否为最后一个);begin表示遍历的起始索引,值为整数;end表示遍历的结束索引,值为整数;step表示迭代的步长,值为整数。<c:forEach>标签<c:forEach[var="varName"]items="collection"[varStatus="varStatusName"][begin="begin"][end="end"][step="step"]> //标签体内容</c:forEach><c:forTokens>标签用于实现类似java.util.StringTokenizer类的迭代功能,按照指定的分隔符对字符串进行迭代。【语法】其中:items用于指定将要迭代的字符串;delims用于指定一个或多个分隔符;var用于将当前迭代的子字符串保存到page域中的属性名称;varStatus表示当前被迭代到的对象的状态信息,包括四个属性:index(表示当前迭代成员的索引值)、count(表示当前已迭代成员的数量)、first(表示当前迭代到的成员是否为第一个)、last(表示当前迭代到的成员是否为最后一个);begin指定从第begin个子字符串开始进行迭代,begin的索引值从0开始编号;end指定迭代到第begin个字符串,begin的索引值从0开始编号;step指定迭代的步长,即每次迭代后的迭代因子增量。<c:forTokens>标签<c:forTokensitems="stringOfTokens"delims="delimiters" [var="varName"][varStatus="varStatusName"] [begin=begin][end=end][step=step]> //标签体内容</c:forTokens>JSTL提供了一些与URL操作相关的标签:<c:url><c:import><c:redirect>URL相关标签<c:url>标签用于在JSP页面中构造一个URL地址【语法】其中:value指定要构造的URL;var指定构造出的URL结果保存到范围域中的属性名称;scope指定构造出的URL结果保存到哪个范围域中;context指定URL地址所属的同一容器下的Web应用上下文;<c:param>标签指定URL地址传递的参数,可选。<c:url><c:urlvalue="value" [var="varName"][scope="{page|request|session|application}"] [context="context"]> [<c:paramname="paramName"value="paramValue"/>]</c:url><c:redirect>标签用于执行response.sendRedirect()方法的功能,将当前访问请求重定向到其他资源。【语法】其中:url用于指定重定向的目标资源的URL地址;context指定重定向地址所属的同一容器下的Web应用上下文;<c:param>标签指定URL地址传递的参数,可选。<c:redirect>标签<c:redirecturl="value"[context="context"]> [<c:paramname="paramName"value="paramValue"/>]</c:redirect>用于在JSP页面中导入一个URL地址指向的资源内容,可以是一个静态或动态文件,可以是当前应用或同一服务器下的其它应用中的资源【语法】其中:url指定要导入资源的URL地址;var指定导入资源保存在范围域中的属性名称,可选;scope指定导入资源所保存的范围域,可选,若指定var属性则其默认值为page;context指定导入资源所属的同一服务器下的Web应用上下文,默认为当前应用;charEncoding指定将导入资源内容转换成字符串时所使用的字符集编码;<c:param>标签指定向导入的资源文件传递的参数,可选。<c:import>标签<c:importurl="url" [var="varName"][scope="{page|request|session|application}"] [context="context"][charEncoding="charEncoding"]> [<c:paramname="paramName"value="paramValue"/>]</c:import>JSTL提供了一个用于实现国际化和格式化功能的标签库—Internationalization标签库,简称为国际化标签库或I18N标签库。I18N标签库封装了Java语言中java.util和java.text两个包中与国际化和格式化相关的API类的功能。国际化标签提供了绑定资源包、从资源包中的本地资源文件读取文本内容的功能;格式化标签提供了对数字、日期时间等本地敏感的数据按本地化信息显示的功能。I18N标签库在JSP页面中使用I18N标签库,首先需要使用taglib指令导入。【语法】其中:prefix属性表示标签库的前缀,可以为任意字符串,通常设置值为“fmt”,注意避免使用一些保留的关键字(如:jsp、jspx、java、servlet、sun、sunw等);uri属性用来指定I18N标签库的URI,从而定位标签库描述文件(TLD文件)。【示例】导入I18N标签库I18N标签库<%@taglibprefix="标签库前缀"uri="/jsp/jstl/fmt"%><%@taglibprefix="fmt"uri="/jsp/jstl/fmt"%>I18N中的国际化标签主要包括:<fmt:setLocale><fmt:bundle><fmt:setBundle><fmt:message><fmt:param>国际化标签在使用国际化标签时,首先需要包含有多个资源文件的资源包,资源包中的各个资源文件分别对应于不同的本地信息。其中资源包基名指定为“messageResource”,简体中文的资源文件名称为“messageResource_zh_CN.properties”,美国英语的资源文件名称为“messageResource_en_US.properties”。国际化标签<fmt:setLocale>标签用于在JSP页面中显示的设置用户的本地化语言环境,环境设置后,国际化标签库中的其他标签将使用该本地化信息,而忽略客户端浏览器传递过来的本地信息。【语法】其中:value用于指定语言和国家代码,可以是java.util.Locale或String类型的实例,例如:zh_CN;scope用于指定Locale环境变量的作用范围,可选,默认为page。<fmt:setLocale>标签<fmt:setLocalevalue="locale"[scope="{page|request|session|application}"]/><fmt:setBundle>标签用于根据<fmt:setLocale>标签设置的本地化信息(绑定一个资源文件)创建一个资源包(ResourceBundle)对象,并可将其保存在范围域属性中。【语法】其中:basename用于指定资源包的基名;var用于指定创建的资源包对象保存在范围域中的属性名;scope用于指定创建的资源包对象所属的范围域。<fmt:setBundle>标签<fmt:setBundlebasename="basename" [var="varName"][scope="{page|request|session|application}"]/><fmt:bundle>标签与<fmt:setBundle>标签的功能类似,但其创建的资源包对象仅对其标签体有效。【语法】其中:basename指定资源包的基名,不包括“.properties”后缀名;prefix指定嵌套在<fmt:bundle>标签内的<fmt:message>标签的key属性值前面的前缀。<fmt:bundle>标签<fmt:bundlebasename="basename"[prefix="prefix"]>[<fmt:messagekey="messageKey">]</fmt:bundle>用于从一个资源包中查找一个指定key的值,并进行格式化输出。【语法】其中:key指定资源文件的键(key);bundle指定使用的资源包,若使用<fmt:setBundle>保存了资源文件,该属性就可以从保存的资源文件中进行查找;var用于将显示信息保存为某个范围域属性;scope指定var属性所属的范围域,默认为page。<fmt:message>标签<fmt:messagekey="messageKey"[bundle="resourceBundle"][var="varName"] [scope="{page|request|session|application}"]/><fmt:param>标签仅有一个参数,用于在<fmt:message>中做参数置换。【语法】其中:value用于指定替换资源文件中参数的参数值。<fmt:param>标签<fmt:paramvalue="messageParameter"/>I18N中的格式化标签主要包括:<fmt:formatNumber><fmt:formaDate>格式化标签用于对日期和时间按本地化信息或用户自定义的格式进行格式化。【语法】其中:value指定要格式化的日期或时间;type指定是要输出日期部分还是时间部分,或者两者都输出;dateStyle指定日期部分的输出格式,该属性仅在type属性取值为date或both时才有效;timeStyle指定时间部分的输出格式,该属性仅在type属性取值为time或both时才有效;pattern指定一个自定义的日期和时间输出格式;timeZone指定当期采用的时区;var指定格式化结果保存到某个范围域中某个属性的名称;scope指定格式化结果所保存的范围域。<fmt:formatDate>标签<fmt:formatDatevalue="date"[type="{time|date|both}"][dateStyle="{default|short|medium|long|full}"][timeStyle="{default|short|medium|long|full}"][pattern="customPattern"][timeZone="timeZone"][var="varName“][scope="{page|request|session|application}"]/>用于将数值、货币或百分数按本地化信息或自定义的格式进行格式化。【语法】其中:value指定需要格式化的数字;type指定值的类型,包括数字(number)、货币(currency)、百分比(percent);pattern指定自定义的格式化样式;currencyCode指定货币编码,仅在type属性值为currency时有效;currencySymbol指定货币符号,仅在type属性值为currency时有效;var指定格式化结果保存在某个范围域中的属性名称;scope指定格式化结果所保存的范围域;groupingUsed指定格式化后的结果是否使用间隔符,如:23,526,00。<fmt:formatNumber>标签<fmt:formatNumbervalue="numericValue" [type="{number|currency|percent}"][pattern="customPattern"] [currencyCode=“currencyCode”]
[currencySymbol="currencySymbol"] [groupingUsed="{true|false}"] [var="varName"][scope="{page|request|session|application}"]/>上述示例中,由于首先使用<fmt:setLocale>标签设置了本地化语言环境为简体中文,因此<fmt:formatNumber>标签中type类型为currency的货币符号为¥,同时也可以使用pattern属性指定货币符号的类型,如上例的“pattern=”$#,##“”。pattern属性中用于格式化的符号及其作用如下表<fmt:formatNumber>标签符号作用0表示一个数位#表示一个数位,前导零和追尾零不显示.表示小数点分割位置,表示组分隔符的位置-表示负数前缀%表示用100乘,并显示百分号函数标签库是在JSTL中定义的标准的EL函数集。函数标签库中定义的函数,基本上都是对字符串进行操作的函数。在JSP中使用函数标签库,首先需要使用taglib指令导入。【语法】其中:prefix属性表示标签库的前缀,可以为任意字符串,通常设置值为“fn”,注意避免使用一些保留的关键字(如:jsp、jspx、java、servlet、sun、sunw等);uri属性用来指定函数标签库的URI,从而定位标签库描述文件(TLD文件)。【示例】导入函数标签库函数标签库<%@taglibprefix="标签库前缀"uri="/jsp/jstl/functions"%><%@taglibprefix="fn"uri="/jsp/jstl/functions"%>JSTL中提供的EL函数名称及功能JSTL中提供的EL函数名称及功能函数名称功能contains(Stringstring,Stringsubstring)判断字符串string中是否包含字符串substringcontainsIgnoreCase(Stringstring,Stringsubstring)判断字符串string中是否包含字符串substring,不区分大小写endsWith(String
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年岳阳职业技术学院单招职业技能考试题库附答案详解
- 2026年山西老区职业技术学院单招职业技能考试题库附答案详解(基础题)
- 中国化工园区氢能网络规划与基础设施投资回报分析报告
- 中国会展风险评估体系与危机管理策略报告
- 中国会展赞助市场开发与品牌合作策略报告
- 中国会展行业供应链管理效率提升专项研究报告
- 中国会展绿色认证体系构建与实践评估报告
- 中班科学教案活动认识昆虫
- 中班科学教案玩具的家3篇
- 2026年杭州初中入学英语测试题及答案
- 2026贵州省气象部门第二批公开招聘应届毕业生22人考试参考题库及答案解析
- 2026甘肃安泰集团有限责任公司招聘工作人员6人考试备考题库及答案解析
- 2026年咸宁职业技术学院单招职业倾向性测试题库及答案详解(网校专用)
- 2026年上饶职业技术学院单招职业技能测试模拟测试卷附答案解析
- 迟到考勤考核制度
- 2025年番禺水务集团笔试及答案
- (高职)客房服务与管理电子全套教学课件(完整版)
- 潜水医学PPT完整全套教学课件
- 制浆造纸设备与机械
- 2023年黑龙江省高职单招面试题库及答案解析
- TZJXDC 002-2022 电动摩托车和电动轻便摩托车用阀控式铅酸蓄电池
评论
0/150
提交评论