JSP自定义标签(一)

1、自定义标签文件准备

1.2标签库导入

在这里插入图片描述

2、自定义标签

2.1为什么学习自定义标签

节省写代码的时间,减少代码冗余,使代码更简洁,可读性更强

2.2特点

	          <开始标签 属性="属性值">标签体</结束标签>
			  空标签:<开始标签><开始标签/>

2.3分类

		标签类型	            作用	               举例
		ui标签	        专门用来展示内容	        from,select
		控制标签	        做流程控制	            if,foreach
		数据标签	       对数据进行操作	        set

2.4JSP自定义标签生命周期图

在这里插入图片描述

3、实例效果

3.1效果图

    <!-- set out if -->
	<c:set var="name" value="zs"></c:set>
	<c:out value="${name }"></c:out>
	<c:if test="true"></c:if>
	<c:if test="false"></c:if>
	<hr>
	<t:demo>demo标签内容</t:demo>
	<t:set var="sex" value="男"></t:set>
	<t:out value="${sex }"></t:out>
	<t:if test="true"></t:if>
	<t:if test="false"></t:if>

在这里插入图片描述

3.2资料文件与配置

                 uri的值是对应的tld文件的uri的值

在这里插入图片描述在这里插入图片描述

     name------>标签名前缀
     testtag-class----->处理业务的助手类的完整类名
	 attribute------>属性
     rtexprvalue----->是否支持特殊表达式
     required----->是否必填

3.3setTag类

    set   设置值  页面无输出
package com.tanjie.jsp;

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

public class setTag extends BodyTagSupport{

	private String var;
	private Object value;
	public String getVar() {
		return var;
	}
	public void setVar(String var) {
		this.var = var;
	}
	public Object getValue() {
		return value;
	}
	public void setValue(Object value) {
		this.value = value;
	}
	
	@Override
	public int doStartTag() throws JspException {
		// TODO Auto-generated method stub
		pageContext.setAttribute(var, value);
		return SKIP_BODY;
	}
}

3.4outTag类

     out 输出指定值
package com.tanjie.jsp;

import java.io.IOException;

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

public class outTag extends BodyTagSupport{

	private Object value;
	
	
	public Object getValue() {
		return value;
	}
	public void setValue(Object value) {
		this.value = value;
	}
	@Override
	public int doStartTag() throws JspException {
		// TODO Auto-generated method stub
		JspWriter out = pageContext.getOut();
		try {
			out.print(value);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return EVAL_BODY_INCLUDE;
	}
}

3.5ifTag类

   if 做判断用的
package com.tanjie.jsp;

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

public class ifTag extends BodyTagSupport{

	private Boolean test;
	
	public Boolean getTest() {
		return test;
	}
	public void setTest(Boolean test) {
		this.test = test;
	}
	@Override
	public int doStartTag() throws JspException {
		// TODO Auto-generated method stub
		System.out.println("dostart");
		return test ?EVAL_BODY_INCLUDE:SKIP_BODY;
	}
}

谢谢大家观看!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值