您的位置:首页 > Web前端 > JavaScript

jstl函数库及自定义函数库

2016-03-13 14:33 393 查看
这些函数只能在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)}    就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: