这些函数只能在EL表达式内使用,EL表达式之外不能使用的,前缀+冒号+函数名。
jst函数l标签库使用:
后台:
request.setAttribute("hello","hello world");
List list = new ArrayList();
list.add("t1");
list.add("t2");
request.setAttribute("list",list);
前台:
<% taglib prefix="fn" uri=http://java.sun.com/jsp/jstl/functions %>
${fn:length(hello)}
${fn:length(list)}
输出:
11
2
自定义函数库:
1.定义类和方法(方法必须是public static)
2.编写自定义tld文件,编写完毕后将此文件放入WEB-INF或WEB-INF的任意子目录下
3.在jsp中采用taglib指令引入自定义函数库
4.采用 前缀+冒号+函数名 调用即可
后台:
package com.java_min.test
public class MyFunctions(){
public static String sayHello(String name){
return "Hello" + name;
}
}
文件名: myfunctions.tld
内容: 1.把样例文件的头部信息拷贝下来直到<uri>标签,包括<uri>标签,
2.把拷入的头部内容信息进行修改,不要和以前的一样就可以了,描述,前缀,uri等,例如
uri=http://www.java_min.com/functions short-name="java_min"
3.添加函数描述内容,即:声明自定义函数
<function>
<name>say</name> //此处的值就是jsp页面上调用时需要引用的函数名
<function-class>com.java_min.test.MyFunctions</function-class> //指定自定义类的路径
<function-signature>java.lang.String sayHello(java.lang.String)</function-signature> //生命函数返回值类型和参数类型,如果类型为基本类型,直接写类型即可,如int,long等,如果为对象类型,必须写完整路径,sayHello必须是要调用的函数名
</function>
前台:
<% taglib prefix="s" uri="http://www.java_min.com/functions" %>(此处也可写tld文件的位置路径)
${java_min:say("jack")}
输出:
Hello jack
注意:前台我们的jack是写死的,那么怎样动态写入呢,例如:
后台:
request.setAttribute("name","jack");
前台:
${java_min:say(name)} 就可以了