IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> JSP自定义标签01 -> 正文阅读

[Java知识库]JSP自定义标签01

JSP页面中标签分为两种

  • 正常标签:<开始标签>。标签体。</结束标签>
  • 空标签

自定义标签的开发和使用的三步骤

第一步:创建一个标签助手类(继承BodyTagSupport) 标签属性必须与助手类的属性对应、且要提供对应get/set方法

第二步:创建标签库描述文件(tld),添加自定义标签的配置

注:tld文件必须保存到WEB-INF目录或其子目录

第三步:?在JSP通过taglib指令导入标签库描述文件,并通过指定后缀访问此自定义标签

标签生命周期声明?

标签方法的含义:

  • SKIP_BODY:跳过主体
  • EVAL_PAGE:计算页面的后续部分
  • SKIP_PAGE:跳过页面的后续部分
  • EVAL_BODY_INCLUDE:计算标签主体内容并[输出]
  • EVAL_BODY_AGAIN:再计算主体一次

自定义标签代码的实现

//实现类
import java.io.IOException;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.BodyTagSupport;

/**jsp自定义标签out:传值
 * @author Administrator
 *
 */
public class OutTag extends BodyTagSupport {
	
private String value;//注意要私有化属性,提供set/get的方法,否则就会报 不能为属性:[value]找到setter 方法.的错误
	
public String getValue() {
		return value;
	}
	public void setValue(String value) {
		this.value = value;
	}
@Override
public int doStartTag() throws JspException {
	JspWriter out = pageContext.getOut();
	try {
		out.print(this.value);
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	return EVAL_BODY_INCLUDE;
}
@Override
	public int doAfterBody() throws JspException {
		
		return SKIP_BODY;
	}
@Override
	public int doEndTag() throws JspException {
		// TODO Auto-generated method stub
		return EVAL_PAGE;
	}
}


//第二步:在WEB-INF目录下导tid文件
<!DOCTYPE taglib
  PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
   "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<!-- 标签库描述符 -->
<taglib xmlns="http://java.sun.com/JSP/TagLibraryDescriptor">
	<!-- 标签库的版本 -->
	<tlib-version>1.0</tlib-version>
	<!-- JSP版本 -->
	<jsp-version>1.2</jsp-version>
	<!-- 自定义标签简称-->
	<short-name>Simple Tags</short-name>
	<!-- 自定义标签引用名 -->
	<uri>/zking</uri>
	<!-- hello world标签 -->
	
	<tag>
	    <name>out</name>
	    <tag-class>com.zking.tag.OutTag</tag-class>
	    <body-content>empty</body-content>
	    <attribute>
			<!-- 自定义标签的属性名称 -->
			<name>value</name>
			<!-- true表示必填 -->
			<required>true</required>
			<!-- true支持动态值,可以向值里面填jsp表达式、EL表达式,false则不支持 -->
			<rtexprvalue>true</rtexprvalue>
		</attribute>
	</tag>
	
//第三步:在JSP页面中调用该标签
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@taglib prefix="c" uri="/zking"%>//注意要导标签引用
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Insert title here</title>
</head>
<body>
<c:out value="Hello World!"/>
</body>
</html>

?

?

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 11:46:11  更:2021-07-17 11:46:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 21:14:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码