java 开发jsp 自定义标签

此文目的,纠正网上一些不正确的文章!

开发步骤:

首先建立一个类:

继承BodyTagSupport

然后设置字段 生成set方法

类:

package org.pan.tags;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.BodyTagSupport;

public class SessionProperty extends BodyTagSupport{

	private static final long serialVersionUID = 1L;
	
	private String value;	//需要获取的属性
	
	public void setValue(String value) {
		this.value = value;
	}
	
	public String getValue() {
		return value;
	}

	@Override
	public int doEndTag() throws JspException {
		// TODO Auto-generated method stub
		return super.doEndTag();
	}

	@Override
	public int doStartTag() throws JspException {
	
		System.out.println("ok");
		HttpServletRequest request=(HttpServletRequest)pageContext.getRequest();
		HttpSession session=request.getSession();
		 
		Object object=session.getAttribute(value);
		if(object==null)return EVAL_PAGE;
		
		if(object instanceof String){
			
			try {
				pageContext.getOut().write(object.toString());
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		return super.doStartTag();
	}

}
特别注意:

输出内容需要用:

pageContext.getOut().write(object.toString());

tld配置:

建立一个tld文件,tld文件需要放在WEB-INF 中


<?xml version="1.0" encoding="UTF-8" ?>

<taglib xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
	version="2.0">

	<description>JSTL 1.1 core library</description>
	<display-name>JSTL core</display-name>
	<tlib-version>1.1</tlib-version>
	<short-name>w</short-name>
	<uri>http:/winter.baletu.com/</uri>
	<tag>
		<description>Obtained from the session attribute</description>
		<name>property</name>
		<tag-class>org.pan.tags.SessionProperty</tag-class>
		<body-content>JSP</body-content>
		<attribute>
			<name>value</name>
			<required>true</required>
			<rtexprvalue>false</rtexprvalue>
		</attribute>
	</tag>
</taglib>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值