1、引入函数声明:

  1. jsp页面需要引入自定义fns函数声明:
  2.  
  3. <%@ taglib prefix="fns" uri="/WEB-INF/tlds/fns.tld" %> (自定义的tld文件位于/WEB-INF/tlds/fns.tld
  4.  
  5. 一般需要C标签配合使用,同时引入C标签声明:
  6.  
  7. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

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

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2.  
  3. <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
  4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  6. version="2.0">
  7.  
  8. <description>JSTL 1.1 functions library</description>
  9. <display-name>JSTL functions sys</display-name>
  10. <tlib-version>1.1</tlib-version>
  11. <short-name>fns</short-name>
  12. <uri>http://java.sun.com/jsp/jstl/functionss</uri> 经过测试,uri标签中可以没有空格
  13.  
  14. <!-- 返回指定对象 -->
  15. <function>
  16. <description>根据编码获取用户对象</description>
  17. <name>getUserById</name>
  18. <function-class>com.aaa.bbb.ccc.sys.utils.UserUtils</function-class>
  19. <function-signature>com.aaa.bbb.ccc.sys.entity.User get(java.lang.String)</function-signature>
  20. <example>${fns:getUserById(id)}</example>
  21. </function>
  22.  
  23. <!-- 返回OBJECT -->
  24. <function>
  25. <description>获取当前用户缓存</description>
  26. <name>getCache</name>
  27. <function-class>com.aaa.bbb.ccc.sys.utils.UserUtils</function-class>
  28. <function-signature>java.lang.Object getCache(java.lang.String, java.lang.Object)</function-signature>
  29. <example>${fns:getCache(cacheName, defaultValue)}</example>
  30. </function>
  31.  
  32. <!-- 多个参数 -->
  33. <function>
  34. <description>获取字典值</description>
  35. <name>getDictValue</name>
  36. <function-class>com.aaa.bbb.ccc.sys.utils.DictUtils</function-class>
  37. <function-signature>java.lang.String getDictValue(java.lang.String, java.lang.String, java.lang.String)</function-signature>
  38. <example>${fns:getDictValue(label, type, defaultValue)}</example>
  39. </function>
  40.  
  41. <!-- 返回List -->
  42. <function>
  43. <description>获取字典对象列表</description>
  44. <name>getDictList</name>
  45. <function-class>com.aaa.bbb.ccc.sys.utils.DictUtils</function-class>
  46. <function-signature>java.util.List getDictList(java.lang.String)</function-signature>
  47. <example>${fns:getDictList(type)}</example>
  48. </function>
  49.  
  50. <!-- JsonMapper -->
  51. <function>
  52. <description>对象转换JSON字符串</description>
  53. <name>toJson</name>
  54. <function-class>com.aaa.bbb.cccc.JsonMapper</function-class>
  55. <function-signature>java.lang.String toJsonString(java.lang.Object)</function-signature>
  56. <example>${fns:toJson(object)}</example>
  57. </function>
  58.  
  59. </taglib>

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

自定义jstl fn函数fns的更多相关文章

  1. JSTL(fn函数)

    JSTL(fn函数) 首先,我们要在页面的最上方引用: <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/js ...

  2. 自定义EL函数、自定义JSTL标签

    自定义EL函数 1.做一个类(静态) package com.maya.el; public class ELBiaoDaoShi { public static String TiHuan(Stri ...

  3. 自定义JSTL标签和函数库

    一.自定义JSTL标签 1.编写标签处理类: (1)实现 SimpleTag 接口,通过 setJspContext()方法可以获取到 jspContext 对象,实际上也是 pageContext ...

  4. 权限管理之基于ACL的实现:自定义JSTL函数实现即时认证

    实现即时认证(即只有拥有相应的权限,才能做相应的操作) 经常用在,在JSP页面上,调用JSTL自定义函数做判断,显示相应的菜单或者功能按钮,比如只有管理员登陆时才显示“删除”按钮,从而完成权限的即时认 ...

  5. 自定义JSTL函数标签(一)

    jstl标签库的配置 * 将jstl.jar和standard.jar拷贝到WEB-INF/lib下(如果使用el表达式,不用拷贝这两个jar) 注意:jstl必须在能够支持j2ee1.4/servl ...

  6. JSTL fn:split()函数

    jstl fn:split()函数代码和用法 -使用fn:split() 函数将一个字符串到一个数组根据分隔符字符串的子字符串. 使用fn:split() 函数将一个字符串到一个数组根据分隔符字符串的 ...

  7. Java进阶SQL函数、网页定时刷新与自定义JSTL函数

    一.SQL函数 能够在SQL语句中调用的函数(方法) ,用来实现一些小功能 聚合函数 能够把多行数据聚合成一个值(统计) count()    计数,计算数据条数 max()      计算最大值 m ...

  8. EL表达式中fn函数 (转载)

    JSTL 使用表达式来简化页面的代码,这对一些标准的方法,例如bean的getter/setter方法,请求参数或者context以及 session中的数据的访问非常方便,但是我们在实际应用中经常需 ...

  9. 自定义一个EL函数

    自定义一个EL函数 一般就是一下几个步骤,顺便提供一个工作常用的 案例: 1.编写一个java类,并编写一个静态方法(必需是静态方法),如下所示: public class DateTag { pri ...

随机推荐

  1. vue2.0 配置build项目打包目录、资源文件(assets\static)打包目录

    vue项目默认的打包路径:根目录下的dist文件夹下: 但是在项目开发中,我们肯定希望项目提交到svn目录或者git目录下,否则每次复制过去,太麻烦了: 那怎么配置打包路径呢?下面来看看: 我们找到打 ...

  2. 第十二章:Python の 网络编程进阶(一)

    本課主題 RabbitMQ 的介紹和操作 Hello RabbitMQ RabbitMQ 的工作队列 消息确应.消息持久化和公平调度模式 RabbitMQ的发布和订阅 RabbitMQ的主题模式 Ra ...

  3. (译)Web是如何工作的(3):HTTP&REST

    原文地址:https://medium.freecodecamp.org/how-the-web-works-part-iii-http-rest-e61bc50fa0a   我们在第一篇文章中介绍了 ...

  4. iOS开发的另类神器:libimobiledevice开源包【类似android adb 方便获取iOS设备信息】

    简介 libimobiledevice又称libiphone,是一个开源包,可以让Linux支持连接iPhone/iPod Touch等iOS设备.由于苹果官方并不支持Linux系统,但是Linux上 ...

  5. mysql数据库-------基础

    一 数据库是什么 把文件存放于一台机器,然后将多台机器通过网络去访问这台机器上的文件,即共享这台机器上的文件,共享则意味着竞争,会发生数据不安全,需要加锁处理,为了远程访问并处理这台共享机器上的文件, ...

  6. MySQL大小写敏感问题和命名规范

    注:本文大部内容参考自互联网相关文章 1.MySQL大小写敏感规则 MySQL中,一个库会对应一个文件夹,库里的表会则以文件的方式存放在文件夹内,所以,操作系统对大小写的敏感性决定了数据库和表的大小写 ...

  7. [转载]常见slave 延迟原因以及解决方法

    一  序言在运维线上M-M 架构的MySQL数据库时,接收的比较多关于主备延时的报警: 点击(此处)折叠或打开 check_ins_slave_lag (err_cnt:1)critical-slav ...

  8. 分享html5的一个拖拽手法

    就是这样的效果:拖拽之前 之后: 上代码: <!DOCTYPE html> <html lang="en"> <head> <meta c ...

  9. python库termcolor用法

    termcolor是python中标注文本颜色的库 ANSII Color formatting for output in terminal. 利用termcolor查看log,进行代码调试,清晰标 ...

  10. 从头开始基于Maven搭建SpringMVC+Mybatis项目(1)

    技术发展日新月异,许多曾经拥有霸主地位的流行技术短短几年间已被新兴技术所取代. 在Java的世界中,框架之争可能比语言本身的改变更让人关注.近几年,SpringMVC凭借简单轻便.开发效率高.与spr ...