【JSTL】fn函数库

        JSTL包含一系列标准函数,大部分是通用的字符串处理函数。


引用JSTL函数库的语法如下:

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

fn:split

语法格式:


属性:


<p>
	request.setAttribute("str", "1#2#3#4#5")如下:<br>
	<c:forEach items="${fn:split(str,\" #\") }" var="v"> 
			${v }<br>
	</c:forEach>
<p>


fn:length

语法格式:


属性:


用jsp脚本取数据:<%=((String)request.getAttribute("hello")).length()%><br>
<br>
<br>使用JSTL的length函数,
函数必须放到EL表达式中,用法:前缀+冒号+函数名称):${fn:length(hello)}
<br>


fn:contains 】

语法格式:


属性:


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

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

       例如对于以下 EL 表达式:

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

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

【fn:substringBefore】

语法格式:


属性:


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

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

       例如对于以下 EL 表达式:

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

       其输出结果为:

              1     Tom

              2     mydata

【自定义函数】

首先定义方法:

package com.bjpowernode.jstl;


/**
 * 自定义JSTL函数库
 * @author Administrator
 *
 */
public class MyFunctions {

	/**
	 * 必须为静态全局的
	 * @param username
	 * @return
	 */
	public static String sayHello(String username) {
		return "Hello " + username;
	}
}

然后提供tld描述文件,该文件在WEB-INF下建立,与lib文件同等级。(类似于自己定义的jar

<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  version="2.0">
    
  <description>my functions library</description>
  <display-name>my functions</display-name>
  <tlib-version>1.0</tlib-version>
  <short-name>my</short-name>
  <uri>http://www.bjpowernode.com/myfunctions</uri>
  
  <function>
    <name>say</name>
    <function-class>com.bjpowernode.jstl.MyFunctions</function-class>
    <function-signature>java.lang.String sayHello(java.lang.String)</function-signature>
  </function>
  
</taglib>

JSP代码:

自定义函数:${my:say("张三")}<br>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值