- 为了更大范围的重用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>
网友评论