自定义jstl fn函数fns

1、引入函数声明:

jsp页面需要引入自定义fns函数声明:

<%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> (自定义的tld文件位于/WEB-INF/tlds/fns.tld) 一般需要C标签配合使用,同时引入C标签声明:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

2、fns.tld代码,仿照jstl的fn函数fn.tld的书写格式:

<?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>JSTL 1.1 functions library</description>
  <display-name>JSTL functions sys</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>fns</short-name>
  <uri>http://java.sun.com/jsp/jstl/functionss</uri>   经过测试,uri标签中可以没有空格


 <!-- 返回指定对象 -->
  <function>
    <description>根据编码获取用户对象</description>
    <name>getUserById</name>
    <function-class>com.aaa.bbb.ccc.sys.utils.UserUtils</function-class>
    <function-signature>com.aaa.bbb.ccc.sys.entity.User get(java.lang.String)</function-signature>
    <example>${fns:getUserById(id)}</example>  
  </function>
    

 <!-- 返回OBJECT -->
  <function>
    <description>获取当前用户缓存</description>
    <name>getCache</name>
    <function-class>com.aaa.bbb.ccc.sys.utils.UserUtils</function-class>
    <function-signature>java.lang.Object getCache(java.lang.String, java.lang.Object)</function-signature>
    <example>${fns:getCache(cacheName, defaultValue)}</example>  
  </function>
    

 <!-- 多个参数 -->
  <function>
    <description>获取字典值</description>
    <name>getDictValue</name>
    <function-class>com.aaa.bbb.ccc.sys.utils.DictUtils</function-class>
    <function-signature>java.lang.String getDictValue(java.lang.String, java.lang.String, java.lang.String)</function-signature>
    <example>${fns:getDictValue(label, type, defaultValue)}</example>  
  </function>
  
 <!-- 返回List -->
  <function>
    <description>获取字典对象列表</description>
    <name>getDictList</name>
    <function-class>com.aaa.bbb.ccc.sys.utils.DictUtils</function-class>
    <function-signature>java.util.List getDictList(java.lang.String)</function-signature>
    <example>${fns:getDictList(type)}</example>  
  </function>
  

  <!-- JsonMapper -->
  <function>
    <description>对象转换JSON字符串</description>
    <name>toJson</name>
    <function-class>com.aaa.bbb.cccc.JsonMapper</function-class>
    <function-signature>java.lang.String toJsonString(java.lang.Object)</function-signature>
    <example>${fns:toJson(object)}</example>  
  </function>
  
</taglib>

 

转自:http://blog.csdn.net/javaloveiphone/article/details/50216569

原文地址:https://www.cnblogs.com/dsitn/p/7397522.html