JSP标签&out标签示例

文章目录

    • 什么是JSP标签?
    • JSP标签库是什么
    • 如何自定义标签
    • 开发实例:
      • out标签:
        • 助手类:
        • 描述文件
        • 引入标签

什么是JSP标签?

标记语言,是一种注释文本的语言,以便于计算机可以操作。很多与“ML”结尾的语言都是标记语言,比如:HTML,XML,XHTML,VML等等

JSP标签库是什么

是一个JSP标签集合,它封装了JSP应用的通用核心功能, 基于JSP标签我们可以理解为,是JSP应该通用功能的一种封装方式。
处理流程
JSP标签&out标签示例_第1张图片

如何自定义标签

  1. 编写助手类
  2. 编写标签库描述文件(tld)
  3. 在页面上引入标签使用

开发实例:

out标签:

助手类:

package com.zking.jsp;

import java.io.IOException;

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

public class OutTag extends BodyTagSupport {

	private String val;
	private String defaultVal;

	public String getVal() {
		return val;
	}

	public void setVal(String val) {
		this.val = val;
	}

	public String getDefaultVal() {
		return defaultVal;
	}

	public void setDefaultVal(String defaultVal) {
		this.defaultVal = defaultVal;
	}

	@Override
	public int doStartTag() {
		try {
			JspWriter out = this.pageContext.getOut();
			if (out == null || "".equals(out)) {
				out.print(this.defaultVal);
			} else {
				out.print(this.val);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return SKIP_BODY;
	}

}

描述文件

<!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-version>1.2</jsp-version>
	<short-name>Simple Tags</short-name>
	<uri>/zking</uri>
<!-- out -->
	<tag>
	<!-- 标签名 -->
	<name>out</name>
	<!-- 标签助手类:全限地名 -->
	<tag-class>com.zking.jsp.OutTag</tag-class>
	<!-- 标签的内容类型:empty:空标签,jsp:可以为任何合法的jsp元素 -->
	<body-content>empty</body-content>
	<attribute>
	<!-- 属性名:outTag类中的val属性相匹配 -->
		<name>val</name>
		<!-- 表示该属性为必要的属性 -->
		<required>true</required>
		<!-- 该属性可以接受的EL表达式的值 -->
		<rtexprvalue>true</rtexprvalue>
		<!-- 标签描述:用于说明标签的作用 -->
		<description>out属性标签,val属性</description>
	</attribute>
	
	<attribute>
		<name>defaultVal</name>
		<required>true</required>
		<rtexprvalue>true</rtexprvalue>
		<description>defaultVal属性标签,defaultVal属性</description>
	</attribute>
	</tag>
</taglib>

引入标签

//顶部:
<%@taglib prefix="z" uri="/zking"%>
--------------------------------------------------------------------------------------------------------------
<% request.setAttribute("name", "sd"); %>
<!-- out 标签 -->
<z:out val="${name}" defaultVal="--"/>

你可能感兴趣的:(JSP,java,开发语言,xml,eclipse,java-ee)