zoukankan      html  css  js  c++  java
  • 自定义标签

    1.tld配置文件创建

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    
    <taglib>
    
        <tlib-version>1.0</tlib-version><!-- 自定义标签的版本数 -->
    
        <jsp-version>1.2</jsp-version><!-- 标签库依赖的JSP版本 -->
    
        <short-name>MyTag</short-name> <!-- 标签的简写 -->
    
        <uri>http://www.com.cn/tag/my</uri><!-- 指定这个标签的uri信息 -->
    
        <description>My Framework JSP Tag Library.</description><!-- 本标签的描述 -->
    
        <tag>
            <name>message</name><!-- 标签名字 -->
            <tag-class>com.ntong.tag.TestTag</tag-class><!-- 指定标签的类 -->
            <body-content>scriptless</body-content><!-- 标签主体的内容 empty表示这个标签可以直接结尾,不需要填写内容  jsp表示标签体由其他jsp元素组成 scriptless:表示可以有标签体,可以把request域中的内容保留-->
        </tag>
    
    </taglib>

    2.标签类的创建

    package com.ntong.tag;
    
    
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.SimpleTagSupport;
    import java.io.IOException;
    
    public class TestTag extends SimpleTagSupport {
        @Override
        public void doTag() throws JspException, IOException {
            this.getJspBody().invoke(null);
        }
    }

    3.使用自定义标签

    <%-- Created by IntelliJ IDEA. --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="tag" uri="http://www.com.cn/tag/my"%>
            <html>
      <head>
        <title></title>
      </head>
      <body>
      <% request.setAttribute("msg","name");%>
      <tag:message>
        ${msg}
      </tag:message>
      </body>
    </html>

    4.补充(自定义全局函数调用标签)

    <?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>getAdminPath</name>
            <function-class>com.ntong.tag.Test</function-class>
            <function-signature>java.lang.String test(java.lang.String)</function-signature><!-- 被掉用的方法的返回类型,方法名,参数类型,并且被调用的函数要是静态的 -->
            <example>${fns:getAdminPath()}</example> <!-- el表达式调用方式-->
     </function> </taglib>

    被调用的函数

    package com.ntong.tag;
    
    public class Test {
        public static String test(String str){
            return str;
        }
    }

    使用此标签

    <%-- Created by IntelliJ IDEA. --%>
    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%@ taglib prefix="tag" uri="http://java.sun.com/jsp/jstl/functionss"%>
            <html>
      <head>
        <title></title>
      </head>
      <body>
     ${tag:getAdminPath("huqi")}
      </body>
    </html>
  • 相关阅读:
    剑指offer-面试题11-旋转数组的最小数字-二分法
    剑指offer-基础练习-快速排序-排序
    剑指offer-面试题10-斐波那契数列-递归循环
    剑指offer-面试题9-用两个栈实现队列-栈和队列
    剑指offer-面试题8-二叉树的下一个节点-二叉树
    剑指offer-面试题7-重建二叉树-二叉树
    Android手势识别总结
    Android点击Button按钮的四种事件监听方法总结
    Android点击EditText文本框之外任何地方隐藏键盘的解决办法
    spring boot 热部署
  • 原文地址:https://www.cnblogs.com/huqi96/p/13414427.html
Copyright © 2011-2022 走看看