如果jsp tag还不够用,我们就要使用到JAVA
先从简单的标记开始
[*]1,编写一个扩展SimpleTagSupport的类
public class MySimpleTag extends SimpleTagSupport
{
}
public void doTag() throws JspException,IOException
{
//在页面打印
getJspContext().getOut().print("THis is the my fist simpleJSPtag");
}
<tlib-version>1.0</tlib-version>
<short-name>simpletag</short-name>
<uri>simpletag</uri>
<tag>
<description></description>
<name>simple</name>
<tag-class>foo.MySimpleTag</tag-class>
<!-- 表示没有BODY,参数还可以scriptless等,scriptless表示可以有体,但不能使script和表达式或声明-->
<body-content>empty</body-content>
</tag>
把TLD文件放在WEB-INF下。
<%@taglib prefix="sim" uri="simpletag"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<!-- 调用标签 -->
<h1><sim:simple/></h1>
</body>
</html>
浏览页面也可以看到THis is the my fist simpleJSPtag。
<!--simpletag.tld -->
<body-content>scriptless</body-content
>
//MySimpleTag.java
public void doTag() throws JspException,IOException
{
//getJspContext().getOut().print("THis is the my fist simpleJSPtag");
//设置message在jsp页面
getJspContext().setAttribute("message", "fromtagjava");
//null表示输出到响应
getJspBody().invoke(null);
}
<!--simpletag.jsp-->
<!--调用标记时候,"message" 不是一个作用域属性,如果从标记去这个表达式将返回NULL -->
<sim:simple>
${message} My first simpleTag
</sim:simple>
<!-- simpletag.tld -->
<tag>
<description></description>
<name>simple</name>
<tag-class>foo.MySimpleTag</tag-class>
<body-content>scriptless</body-content>
<attribute>
<name>testlist</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
//MySimpleTag.java
private List testlist;
public void doTag() throws JspException,IOException
{
//getJspContext().getOut().print("THis is the my fist simpleJSPtag");
Iterator i = testlist.iterator();
while(i.hasNext())
{
String number = (String)i.next();
getJspContext().setAttribute("message", number);
//每次循环都会重新设置message的值,并再次输出到响应
getJspBody().invoke(null);
}
}
public void setTestlist(List testlist)
{
this.testlist = testlist;
}
<!-- simpletag.jsp -->
<body>
<%
ArrayList list = new ArrayList();
list.add("one");
list.add("two");
list.add("three");
%>
<h1>
<ul>
<!-- 我们传一个ArrayList 进去,设置testlist -->
<sim:simple testlist = '<%=list%>' >
<li> ${message} My first simpleTag</li>
</sim:simple>
</ul>
分享到:
相关推荐
重读闭音节是英语发音规则中的一个重要概念,主要涉及元音字母在特定音节中的发音方式。在学习英语发音时,理解并掌握这一规则对于准确读出单词至关重要。 首先,我们回顾一下重读开音节。重读开音节指的是在一个...
英语语音重读是英语口语表达中的一个重要组成部分,它关乎到信息的传递清晰度以及语调的自然流畅。在英语句子中,重读的规律主要遵循以下几个原则: 首先,实词通常需要重读。实词包括名词、动词、形容词、副词、...
英语发音规则(重读音节和非重读音节).pdf
首先,我们要知道英语中有五个元音字母:a, e, i, o, u,以及在某些情况下作为元音使用的半元音字母y。音节可以由单一元音构成,如"ah"或"ee";也可以由一个元音和一个或多个辅音组成,如"cat"或"good"。此外,特殊...
这篇文档实际上是一篇以“重读冰心,感受母爱”为主题的作文,而非与IT行业相关的知识内容。文章通过描述作者对冰心作品的理解,尤其是冰心对母爱的赞美,来表达作者对母爱的深刻感悟和个人经历。母爱在文中被视为最...
重读南京百科知识竞赛题及答案.doc
英语发音中的音节划分和重读规则是学习者掌握地道口语的关键部分。下面将详细解释这些规则,并通过实例帮助理解。 一、单词重读 1. 双音节词的重读规则: a) 大多数双音节词的第一个音节重读,如 "letter"、...
音节划分元音字母在重读非重读中发音.ppt
重读音节包括开音节、闭音节、-re音节、-r音节和字母组合五种类型。弱读音节包括单个元音音节、-r音节、字母组合和非重读辅音音节四种类型。 六、英语音节分类 英语音节可以分为开音节、闭音节、-re音节、-r音节和...
本文主要探讨了元音字母在重读和非重读音节中的读音规则,这对于学习英语发音和词汇记忆至关重要。 首先,我们来看元音字母在重读音节中的读音: 1. 开音节:在开音节中,元音字母通常会发其"字母名称"的音。例如...
【音节划分与音节重读】是英语学习中的重要概念,主要涉及到单词发音的准确性。音节划分是将单词分解成若干个发音单位,每个单位由一个或多个字母组成,至少包含一个元音字母。以下是对音节划分规则的详细解释: 1....
在教师资格证初中英语语音试讲中,重点是教授如何理解和使用正确的语音技巧,特别是重读和语调。试讲稿中的内容展示了一个日常生活场景,爷爷找不到他的眼镜,请求孙女李兰帮忙,但因为听力问题,他们之间发生了一些...
由于提供的文件内容为乱码,并且文件标题为"消费行业四大行业消费趋势电·重读消费者.pdf",但无法从乱码内容中提取实际信息,我将基于文件的标题和描述来猜测内容,并生成相关知识点。 【标题】"消费行业四大行业...
在英语学习中,音节划分、重读规则和读音规则是至关重要的基础部分,它们直接影响到单词的发音和语句的理解。以下是对这些规则的详细解释: 首先,我们来看单词的重读规则: 1. 双音节词: a) 通常第一个音节重读...
【开音节与重读音节】 在英语发音中,开音节是一个重要的概念,它涉及到单词中的元音字母如何发音。开音节是指以一个元音字母结尾,且这个元音字母在其后没有受到其他辅音字母的影响,能够自由地发出其基本音,也...
这些书籍的出现,似乎在暗示重读不仅仅是个人习惯,它还是一种文化现象,一种阅读的新趋势。 重读旧书,对于许多人来说,不仅仅是因为怀旧或者时间有限。它是一种深度阅读的方式,让人们有机会更深入地理解文本,...
"英语音节重读规则" 英语音节重读规则是英语语言中一个非常重要的概念,它对英语词汇的读音和理解产生了深远的影响。英语音节重读规则的主要内容是关于英语词汇中重读音节和非重读音节的分布规律。 英语音节重读...
20210307-德邦证券-德邦家电行业:重读与解构《第四消费时代》第三消费时代.pdf
英语中的重读闭音节规则是英语学习中的一个重要部分,主要涉及到动词的变化形式,特别是现在分词、过去式和过去分词的构成。在英语中,闭音节是指一个元音字母后面跟着一个或多个辅音字母,并且这个音节在单词中是...
重读长辈这本书.docx