J2EE-12 custom tag自定义标记

初始化函数

setPageContext(PageContext pc)

int doStartTag(){

}

如果返回值是SKIP_BODY的时候就是
EVAL_PAGE:标签里面的内容正常执行,正常的返回值就是这个

一个例子

1.标记处理器:
import java.servlet.jsp.targext.*;
import java.util.*;
import java.io.*;
import javax.servlet.*;
import javax.servlet.jsp.*;
import javax.servlet.http.*;

public class IimeTag extends TagSupport{

	public int doStartTag()throws JspExpection{
		try{
			pageContext.getOut().
			print(new Date());

		}
		catch(Exception e){
			throw new JspExpection(e);
		}
		return Tag.EVAL_BODY_INCLUDE;
	}
}


2. 分配一个标记

.tld文件:
标记库描述符文件

<tag>
	<body-content>JSP</body-content>
	标记里面的内容是不是JSP,可为空,此时的标签内部如果有东西就报错
</tag>

标记库描述符文件

JSP指令的语法形式

<%@ taglib uri="/WEB-INF/a.tld" prefix="a" %>
<%@ taglib uri="/WEB-INF/b.tld" prefix="b" %>

<a:time>
</a:time>
<b:time>
</b:time>

用来区分相同名字的标签


JSP传递数据

jsp向标记处理器传递程序

jsp向标记处理器传递程序

public

<rtexprvalue>:对属性值进步进行解析 一般是true,即进行动态解析

eg <a:time place:"${place}">

标记处理器想JSP回传一个脚本变量

<% 
	int i = 5;
	Student s = new Student();

%>
<t:time/>
<%=d%>

d由time标记生成

TagExtraInfo


public VariableInfo{
变量信息:变量名称,变量类型
}

AT_BEGIN
标签的开始标记到JSP结束
AT_END
在标签的结束开始到JSP的最后
NESTED
标签内部使用,离开就不能使用


Eg:
在这里插入图片描述

在jsp转换为java代码的时候执行上面的代码

变量的赋值

在doStartTag中:
pageContext.setAttribute("d",new java.util.Date());


在JSP中使用

jsp中的变量应该由JSP程序员来指定


jsp页面中:
<t:time var = "d" type="java.util.Date"/>

在doStartTag()中

在这里插入图片描述

simpleTag

初始化
setJspContext()
setJspBody()

getJspContext()
getJspBody()

invoke()
执行代码片段,输出到out对象中 

作业:

simpleTag bodyTag intetationTag
API

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值