jstl函数库及自定义函数库

这些函数只能在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)}    就可以了
原文地址:https://www.cnblogs.com/lllini/p/11955313.html