如果现在的公司在使用jsp2.0以前版本的jsp,
还在使用传统标记编写定制标志处理器。那么我们还需要了解一下传统标签。
相对于2.0以后的简单标记,传统标记复杂多了
public class ClassicTag extends TagSupport{)
- 2,覆盖doStartTag,doEndTag方法
public int doStartTag() throws JspException
{
//从TagSupport继承了一个pageContext成员变量(而simpleTag doTag()声明的是JOEXCEPTION
JspWriter out = pageContext.getOut();
try
{
out.print("classic start tag out put");
}
catch(IOException ex)
{
throw new JspException("IOException -"+ex.toString());
}
//必须返回一个INT告诉容器接下去做什么
//如果有体,不要计算体,直接调用doEngTag方法
//如果有体则返回 EVAL_BODY_INCLUDE 向但与简单标记的 getJspBody().invoke(null);
return SKIP_BODY;
}
public int doEndTag() throws JspException
{
JspWriter out = pageContext.getOut();
try
{
out.print("<br/>classic end tag out put");
}
catch(IOException ex)
{
throw new JspException("IOException -"+ex.toString());
}
//计算余下的页面
return EVAL_PAGE;
}
<tlib-version>1.0</tlib-version>
<short-name>classistag</short-name>
<uri>classic</uri>
<!-- 传统标记定义 和 简单标记定义 没有区别-->
<tag>
<description></description>
<name>classic</name>
<tag-class>foo.ClassicTag</tag-class>
<body-content>empty</body-content>
</tag>
可以存放在WEB-INF下的某个位置,容器会自动寻找到。
<%@taglib prefix="clas" uri="classic"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>
<clas:classic/>
</h1>
</body>
</html>
要增加一个doAfterBody() 方法。
//ClassicTag.java
String[] movies = new String[]{"Spider","Big fish","Fox"};
int movieCounter;
public int doStartTag() throws JspException
{
movieCounter =0;
//从TagSupport继承了一个pageContext成员变量(而simpleTag doTag()声明的是JOEXCEPTION
pageContext.setAttribute("movie",movies[movieCounter]);
movieCounter++;
/* try
{
out.print("classic start tag out put");
}
catch(IOException ex)
{
throw new JspException("IOException -"+ex.toString());
}*/
//必须返回一个INT告诉容器接下去做什么
//如果有体,不要计算体,直接调用doEngTag方法
//如果有体则返回 EVAL_BODY_INCLUDE 向但与简单标记的 getJspBody().invoke(null);
return EVAL_BODY_INCLUDE;
}
public int doAfterBody() throws JspException
{
if(movieCounter < movies.length)
{
pageContext.setAttribute("movie",movies[movieCounter]);
movieCounter++;
return EVAL_BODY_AGAIN;
}
else
{
return SKIP_BODY;
}
}
把body改一下
<!--ClassisTag.tld-->
<body-content>scriptless</body-content>
<!--classictag.jsp-->
<ul>
<clas:classic>
<li>${movie}</li>
</clas:classic>
</ul>
效果如图所示
- 大小: 78 KB
分享到:
相关推荐
重读闭音节是英语发音规则中的一个重要概念,主要涉及元音字母在特定音节中的发音方式。在学习英语发音时,理解并掌握这一规则对于准确读出单词至关重要。 首先,我们回顾一下重读开音节。重读开音节指的是在一个...
英语语音重读是英语口语表达中的一个重要组成部分,它关乎到信息的传递清晰度以及语调的自然流畅。在英语句子中,重读的规律主要遵循以下几个原则: 首先,实词通常需要重读。实词包括名词、动词、形容词、副词、...
英语发音规则(重读音节和非重读音节).pdf
在英语发音中,音节划分和元音字母在重读及非重读音节中的发音是关键要素。音节是英语单词发音的基本单位,它由一个或多个字母组成,其中至少包含一个元音。理解这一概念有助于准确地读出单词,并且在口语中表达清晰...
这篇文档实际上是一篇以“重读冰心,感受母爱”为主题的作文,而非与IT行业相关的知识内容。文章通过描述作者对冰心作品的理解,尤其是冰心对母爱的赞美,来表达作者对母爱的深刻感悟和个人经历。母爱在文中被视为最...
重读南京百科知识竞赛题及答案.doc
英语发音中的音节划分和重读规则是学习者掌握地道口语的关键部分。下面将详细解释这些规则,并通过实例帮助理解。 一、单词重读 1. 双音节词的重读规则: a) 大多数双音节词的第一个音节重读,如 "letter"、...
音节划分元音字母在重读非重读中发音.ppt
本文主要探讨了元音字母在重读和非重读音节中的读音规则,这对于学习英语发音和词汇记忆至关重要。 首先,我们来看元音字母在重读音节中的读音: 1. 开音节:在开音节中,元音字母通常会发其"字母名称"的音。例如...
【音节划分与音节重读】是英语学习中的重要概念,主要涉及到单词发音的准确性。音节划分是将单词分解成若干个发音单位,每个单位由一个或多个字母组成,至少包含一个元音字母。以下是对音节划分规则的详细解释: 1....
在教师资格证初中英语语音试讲中,重点是教授如何理解和使用正确的语音技巧,特别是重读和语调。试讲稿中的内容展示了一个日常生活场景,爷爷找不到他的眼镜,请求孙女李兰帮忙,但因为听力问题,他们之间发生了一些...
由于提供的文件内容为乱码,并且文件标题为"消费行业四大行业消费趋势电·重读消费者.pdf",但无法从乱码内容中提取实际信息,我将基于文件的标题和描述来猜测内容,并生成相关知识点。 【标题】"消费行业四大行业...
六、英语音节分类 英语音节可以分为开音节、闭音节、-re音节、-r音节和字母组合五种类型。 开音节包括绝对开音节、相对开音节和第三开音节三种类型。绝对开音节是单个元音直接结尾的音节,例如he、she、me等。相对...
在英语学习中,音节划分、重读规则和读音规则是至关重要的基础部分,它们直接影响到单词的发音和语句的理解。以下是对这些规则的详细解释: 首先,我们来看单词的重读规则: 1. 双音节词: a) 通常第一个音节重读...
【开音节与重读音节】 在英语发音中,开音节是一个重要的概念,它涉及到单词中的元音字母如何发音。开音节是指以一个元音字母结尾,且这个元音字母在其后没有受到其他辅音字母的影响,能够自由地发出其基本音,也...
这些书籍的出现,似乎在暗示重读不仅仅是个人习惯,它还是一种文化现象,一种阅读的新趋势。 重读旧书,对于许多人来说,不仅仅是因为怀旧或者时间有限。它是一种深度阅读的方式,让人们有机会更深入地理解文本,...
"英语音节重读规则" 英语音节重读规则是英语语言中一个非常重要的概念,它对英语词汇的读音和理解产生了深远的影响。英语音节重读规则的主要内容是关于英语词汇中重读音节和非重读音节的分布规律。 英语音节重读...
20210307-德邦证券-德邦家电行业:重读与解构《第四消费时代》第三消费时代.pdf
英语中的重读闭音节规则是英语学习中的一个重要部分,主要涉及到动词的变化形式,特别是现在分词、过去式和过去分词的构成。在英语中,闭音节是指一个元音字母后面跟着一个或多个辅音字母,并且这个音节在单词中是...
重读长辈这本书.docx