DBMNG数据库管理与应用

所谓独创的能力,就是经过深思的模仿。
当前位置:首页 > 经验分享 > Java开发

javaWeb开发中jsp jstl页面自定义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>


      <function>

        <description>项目访问地址</description>

        <name>getProjectUrl</name>

        <function-class>common.config.Global</function-class>

        <function-signature>java.lang.String getProjectUrl()</function-signature>

        <example>${fns:getProjectUrl()}</example>

      </function>

      <function>

        <description>获取配置</description>

        <name>getConfig</name>

        <function-class>common.config.Global</function-class>

        <function-signature>java.lang.String getConfig(java.lang.String)</function-signature>

        <example>${fns:getConfig(key)}</example>

      </function>


    </taglib>


3、为表达式函数(标签函数)提供后台服务类:common.config.Global:


/**

     * fns表达式函数服务类

     */

    public class Global {


        /**

         * 当前对象实例

         */

        private static Global global = new Global();


        /**

         * 保存全局属性值

         */

        private static Map<String, String> map = Maps.newHashMap();


        /**

         * 属性文件加载对象

         */

        private static PropertiesLoader loader = new PropertiesLoader("pro.properties");


        /**

         * 是/否

         */

        public static final Integer YES = 1;

        public static final Integer NO = 0;


        /**

         * 对/错

         */

        public static final String TRUE = "true";

        public static final String FALSE = "false";


        /**

         * 获取当前对象实例

         */

        public static Global getInstance() {

            return global;

        }


        /**

         * 获取配置

         * @see ${fns:getConfig('project.url')}

         */

        public static String getConfig(String key) {

            String value = map.get(key);

            return value;

        }


        /**

         * 访问地址

         */

        public static String getProjectUrl() {

            return getConfig("project.url");

        }

    }


4、在jsp页面或js中使用自定义的表达式函数fns:


<script type="text/javascript">

            top.location.href='${fns:getProjectUrl()}/index.jsp';

    </script>


在标签中直接使用:


<div class="meet-our-team  margin-top-15">

    <c:if test="${customer!=null && customer.idCard!=null  }">

        <!-- el表达式拿到的值与其它值拼接,无需在使用+,直接拼接即可 -->

        <img src="${fns:getConfig('IMG_SYS_ADDRESS')}?id=${customer.idCard }" alt=""/>

    </c:if>

    <p class="text-center margin-top-10">身份证</p>

</div>

--------------------- 


原文:https://blog.csdn.net/javaloveiphone/article/details/50216569 


本站文章内容,部分来自于互联网,若侵犯了您的权益,请致邮件chuanghui423#sohu.com(请将#换为@)联系,我们会尽快核实后删除。
Copyright © 2006-2023 DBMNG.COM All Rights Reserved. Powered by DEVSOARTECH            豫ICP备11002312号-2

豫公网安备 41010502002439号