这里简单说一下JSTL中自定义函数的使用。 首先建立一个类:MyFunctions:
package com.jstl;
/**
* JSTL自定义函数
* @author 胡阳
*
*/
public class MyFunctions {
/**
* 必须为静态的全局的,在字符串前面加“hello”
* @param username
* @return
*/
public static String sayHello(String username) {
return "hello:" + username;
}
}
然后写一个tld文件:myfn.tld:(这里面的uri是自己随意定义的,不过要考虑到如果定义很多这样的uri的话可能出现命名冲突,所以起名要有规律)
<?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 own JSTL functions</description>
<display-name>JSTL MyFunctions</display-name>
<tlib-version>1.0</tlib-version>
<short-name>myfn</short-name> <!-- 这个myfn就是在使用时需要写在冒号前面的标签 -->
<uri>http://www.the5fire.com/MyFunctions</uri>
<function>
<description>
my first function.
</description>
<name>sayHello</name> <!-- 这个sayHello就是在使用时需要写在冒号后面的方法 -->
<function-class>com.jstl.MyFunctions</function-class>
<function-signature>java.lang.String sayHello(java.lang.String)</function-signature>
<example>
</example>
</function>
</taglib>
然后在上一篇文章中的jstl_fn.jsp中引入自定义函数:
<%@ taglib uri="http://www.the5fire.com/MyFunctions" prefix="myfn" %>
再在该文件中添加以下代码:
<li>自定义函数sayHello使用</li><br>
${myfn:sayHello("胡阳") }<br>
到这就完了,还是同先前一样,自己实验一下。重点就是最开始写的那个java类,它可以干的事有很多。