JSP

网页应用程序开发

JSP教学03 自定义标记

教学目的:了解标记文件的创建和使用

3.1 标记文件的结构

标记(Tag)是JSP实现代码复用的机制之一

标记文件的扩展名为.tag,结构与JSP文件类似

标记文件可以被JSP页面调用,但用户不能直接访问

标记文件必须存放在指定目录下:
Web应用程序目录\WEB-INF\tags
(tags目录下还可以创建子目录,名称可自定义)

例:使用标记文件在页面中添加相同的页脚

在ROOT\WEB-INF\tags下创建footer.tag:

<%@ tag pageEncoding="utf-8" %>
<p>义乌工商学院机电信息分院 联系电话:88886666</p>

在JSP页面中用taglib指令定义标记库:

<%@ taglib tagdir="/WEB-INF/tags" prefix="leo" %>

在JSP页面中使用此自定义标记:

<leo:footer />

注意:如果在Dreamweaver中无法打开.tag文件,可以在菜单栏中选择“编辑”>“首选参数”>“文件类型/编辑器”,找到“在代码视图中打开”文本域,在其中添加.tag即可解决问题。

3.2 自定义标记的使用

引入自定义标记库:

<%@ taglib tagdir="/WEB-INF/tags/子目录" prefix="前缀" %>

使用自定义标记:

<标记库前缀:标记名 />
<标记库前缀:标记名>标记体</标记库前缀:标记名>

在标记文件中引用标记体:

<jsp:doBody />

例:格式化标记体

在ROOT\WEB-INF\tags下创建notice.tag:

<font color="red"><b><jsp:doBody /></b></font>

在JSP页面中用taglib指令定义标记库:

<%@ taglib tagdir="/WEB-INF/tags" prefix="leo" %>

在JSP页面中使用此自定义标记:

<leo:notice>热烈欢迎!</leo:notice>

3.3 标记文件中的常用指令

Tag指令:类似于JSP文件中的Page指令,用于设置字符编码、引入类等
<%@ tag pageEncoding="utf-8" import="java.io.*" %>

Taglib指令:用于在标记文件中使用其他自定义标记
<%@ taglib tagdir="/WEB-INF/tags/new" prefix="new" %>

Attribute指令:用于设置标记可用的属性
<%@ attribute name="属性名" required="true或false" type="类型"%>

例:格式化标记体的改进

修改notice.tag添加字体颜色属性

<%@ attribute name="fontcolor" %>
<font color="<%= fontcolor %>"><b><jsp:doBody /></b></font>

在JSP中添加带属性设置的标记

<leo:Notice fontcolor="blue">热烈欢迎!</leo:Notice>

Variable指令:用于向JSP页面返回变量

<%@ variable name-given="变量名" scope="AT_END或AT_BEGIN或NESTED" variable-class="类型" %>

例:页脚标记的改进

修改footer.tag添加开发者变量

<%@ variable name-given="developer" scope="AT_END" %>
<% jspContext.setAttribute("developer", "开发者:leo"); %>

在JSP页面中输出标记返回的变量

<%= developer %>

评论:

发表评论:
该文章禁用评论功能。