JSP JSTL入门 - JSTL函数和自定义函数

Posted Qi-BJ

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP JSTL入门 - JSTL函数和自定义函数相关的知识,希望对你有一定的参考价值。

1、在使用JSTL函数前,需要将JSTL函数库引入JSP页面,通过taglib指令引入代码如下:

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

 

2、JSTL函数大部分是通用的字符串处理函数,如下:

函数

描述

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()

移除首尾的空白符

 

3、测试contains()函数代码:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<html>
  <head>
    <title>JSTL-fn测试</title>
  </head>
  <body>
<%--    如果字符串ABC中包含字符串A则返回true,否则返回false--%>
    ${fn:contains("ABC", "A")}
  </body>
</html>

 

4、自定义函数

1)在Web项目中的src文件夹下创建包和类,例如在src文件夹下创建cn.qi.Myfu包,在该包下创建类MyFunctions,在类中定义一个 static 方法,用来计算两个整数的乘积,例如:

2)在Web项目中web/WEB-INF/或web/WEB-INF/tld文件夹下创建一个标签库描述文件myfn.tld,内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee" version="2.0">
    <tlib-version>1.0</tlib-version>
    <short-name>Myfu</short-name>

    <function>
        <name>muti</name>
        <function-class>cn.qi.Myfu.MyFunctions</function-class>
        <function-signature>java.lang.String muti(int, int)</function-signature>
    </function>
</taglib>

3)在对应的JSP页面中添加一个taglib指令定义应用的标签库和访问前缀,例如:

<%@ taglib prefix="myfn" uri="/WEB-INF/tld/myfn.tld" %>

4)在该JSP页面中使用EL表达式输出该函数返回的字符串:

${myfn:muti(10, 5)}

 

以上是关于JSP JSTL入门 - JSTL函数和自定义函数的主要内容,如果未能解决你的问题,请参考以下文章

jsp的标签库和自定义标签

自定义jstl fn函数fns

EL表达式 JSTL的标签库 EL的函数 自定义EL函数 自定义标签 JSP的开发模式 注册登陆案例

Java_jsp.jstl.Function函数标签库.记录

jstl

JSP页面上使用JSTL函数,对函数传参能否使用JSTL表达式?