J2EE&JSP自定义标签库01&out标签&if标签

目录

一.什么是标签

二.JSP自定义标签库

2.1 JSP标签库是什么

2.2 处理流程

2.3 如何自定义标签 

2.4 标签类型

三.开发示例

3.1  out标签

1.创建助手类

2.编写tld(标签库的描述)文件,(必须放在WEB-INF目录或其目录下)

3.在页面使用

4.将项目部署运行,即可可到效果

3.2 if标签

1.创建助手类

2.编写tld(标签库的描述)文件,(必须放在WEB-INF目录或其目录下)

3.在页面使用


一.什么是标签

标记语言,是一种注释文本的语言,以便于计算机可以操作。很多与“ML”结尾的语言都是标记语言,比如:HTML,XML,XHTML,VML等等。
标记语言与其他语言一样,也需要运行它们的环境,比如HTML的运行环境时浏览器,XML也要自己的解析和运行的环境。

基本结构:
<开始标签>标签体

空标签:
<开始标签 属性名="属性值"/>



<开始标签 属性名="属性值"/>

二.JSP自定义标签库

2.1 JSP标签库是什么

是一个JSP标签集合,它封装了JSP应用的通用核心功能, 基于JSP标签我们可以理解为,是JSP应该通用功能的一种封装方式

2.2 处理流程

J2EE&JSP自定义标签库01&out标签&if标签_第1张图片

2.3 如何自定义标签 

常见自定义标签主要步骤:

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

2.4 标签类型

  1. UI标签, 输出页面元素
  2. 控制标签, 如if标签,foreach标签等
  3. 数据标签,用于向页面输入数据

三.开发示例

3.1  out标签

1.创建助手类

public class OutTag extends BodyTagSupport {

	private String val;

	public String getVal() {
		return val;
	}

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

	// 默认值
	private String defaultVal;

	public String getDefaultVal() {
		return defaultVal;
	}

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

	@Override
	public int doStartTag() {
		//pageContext为页面上下文对象,用于和jsp共享数据
		JspWriter out = this.pageContext.getOut();
		try {
			if (this.val == null || "".equals(this.getVal())) {
				//利用JspWrite对象将val输出到页面
				out.print(this.getDefaultVal());
			}else {
				//利用JspWrite对象将val输出到页面
				out.print(this.val);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}

		return SKIP_BODY;
	}

}

2.编写tld(标签库的描述)文件,(必须放在WEB-INF目录或其目录下)




	1.0
	1.2
	Simple Tags
	/zking

	
		
		    out
		
		    com.zking.tagdemo.tag
		
		    empty
	
		
		    val
		
		    true
		
		    true
		
		    out标签val属性,用于输出val的值
	

	
		
		    defaultVal
		
		    false
		
		    false
		
		    out标签defaultVal属性,用于输出defaultVal的值
	
		
	
	

3.在页面使用

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="z" uri="/zking" %>




Insert title here


	

4.将项目部署运行,即可可到效果

3.2 if标签

1.创建助手类

public class IfTag extends BodyTagSupport{

	private boolean test = false;

	public boolean isTest() {
		return test;
	}

	public void setTest(boolean test) {
		this.test = test;
	}
	
	@Override
	public int doStartTag() {
		if(this.test) {
			return EVAL_BODY_INCLUDE;
		}
		
		return SKIP_BODY;
		
	}
}

2.编写tld(标签库的描述)文件,(必须放在WEB-INF目录或其目录下)




	1.0
	1.2
	Simple Tags
	/zking

	
	
			
		if
			
		com.zking.tagdemo.tag.IfTag
			
		jsp
	
	
			
		test
			
		true
			
		true
			
		out标签test属性,用于输出test的值
	
	
	
	
	
	
	

3.在页面使用

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@taglib prefix="z" uri="/zking" %>




Insert title here


	

	
		测试if(100 == 100)
	




你可能感兴趣的:(java,java-ee,servlet,eclipse,j2ee)