美文网首页
定制标记库

定制标记库

作者: 米都都 | 来源:发表于2019-01-08 10:18 被阅读0次
    • 为了更大范围的重用Java代码,减少JSP文件中的Java代码数量,可以使用定制标记库技术。即,开发人员可以按照一定的规则自己定义JSP中可以重复使用的类似JSP动作标记(例如include,forward……)

    Tag文件

    • 使用JSP的语法

    • 可以使用JSP的7个内置对象:request,response,out,session,application,config, pageContext,不能用exception和page这两个内置对象

    • 扩展名为 xxx.tag 或 xxx.tagf。当该tag文件被其他tag文件所包含,最好使用tagf

    • .tag文件需要保存到 WEB-INF/tags目录及其子目录下

    • 简单示例

      dateTime.tag文件

        <%@tag import="java.util.Date" import="java.text.SimpleDateFormat"%>
        <%
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
            out.println(simpleDateFormat.format(new Date()));
        %>
      

      使用标记的JSP文件

        <%@ page contentType="text/html;charset=UTF-8" language="java" %>
        <%@ taglib prefix="util2" tagdir="/WEB-INF/tags" %>
        <html>
            <head>
                <title>Example</title>
            </head>
            <body>
                <util2:dateTime/>
                <br>
            </body>
        </html>
      

      导入时,要用@taglib标记,prefix代表标记的前缀, tagdir代表tag文件位置;

      使用时,用前缀+标记文件名的形式,前缀为导入时设置的prefix,文件名为dateTime(.tag)

    Tag文件可以使用的指令

    • tag

      用于设置整个tag文件的基本属性,包括import, pageEncoding等属性

        <%@ tag import="java.util.Date" pageEncoding="UTF-8"%>
      
    • include

      用于包含其他的tag文件或静态html

        <%@ include file="header.tag" %>
      
    • taglib

      使用其他定制标记库的定制标记

        <%@taglib prefix="util" uri="http://v512.com/taglib/util"%>
      
    • attribute

      设置属性,包括 name(属性名称),required(属性是否为必须)等……

      示例

      dateTime.tag

        <%@tag import="java.util.Date" import="java.text.SimpleDateFormat"%>
        <%@ attribute name="pattern" required="true" %>
        <%
            SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat(pattern);
            out.println(simpleDateFormat1.format(new Date()));
        %>
      

      example.jsp

        <%@ page contentType="text/html;charset=UTF-8" language="java" %>
        <%@ taglib prefix="util2" tagdir="/WEB-INF/tags" %>
        <html>
            <head>
                <title>Example</title>
            </head>
            <body>
                <util2:dateTime2 pattern="yyyyMMdd"/>
                <br>
            </body>
        </html>
      

      此时使用标记时,需要设置属性 pattern="yyyyMMdd"

    • variable

    • <jsp:doBody>

    • <jsp:invoke>

    相关文章

      网友评论

          本文标题:定制标记库

          本文链接:https://www.haomeiwen.com/subject/vycvrqtx.html