the5fire

关注Python、Django、Vim、Linux、Web开发、团队管理和互联网--Life is short, we need Python.


JSTL使用自定义函数

作者:the5fire | 标签:     | 发布:2011-01-01 10:21 p.m. | 阅读量: 9115, 8931

这里简单说一下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类,它可以干的事有很多。

- from the5fire.com
----EOF-----

微信公众号:Python程序员杂谈


其他分类: