|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在ruby里才是一切皆对象。当然我不并不是很了解ruby,但是ruby确实是将语法简化得很好。js|web|程序标签处置器
JSP1.2中传统的标签处置API因为同意标签体中包括scriptlet而变得庞大,可是如今使用表达式言语能够编写不含scriptlet的JSP网页。终极,JSP2.0引进了一种新的标签扩大机制,称为“复杂标签扩大”,这类机制有两种利用体例:
- Java开辟职员能够界说完成接口javax.servlet.jsp.tagext.SimpleTag的类;
- 不懂Java的网页编写职员则可使用标签文件。
起首来看第一种体例,代码示例6给出了一个复杂的标签处置器,它的感化仅仅是打印“Thisismyfirsttag!”。
代码示例6:HelloTag.java- packagejsp2.examples.simpletag;
复制代码- importjavax.servlet.jsp.JspException;
- importjavax.servlet.jsp.tagext.SimpleTagSupport;importjava.io.IOException;
复制代码- /**
- *SimpleTaghandlerthatprints"Thisismyfirsttag!"
- */
- publicclassHelloTagextendsSimpleTagSupport{
- publicvoiddoTag()throwsJspException,IOException{
- getJspContext().getOut().write("Thisismyfirsttag!");
- }
- }
复制代码 编译乐成后,下一步就要在TLD中界说一个标签形貌符,上面是标签形貌符的例子。
代码示例7:标签形貌符- <tag>
- <description>Printsthisismyfirsttag</description>
- <name>hello</name>
- <tag-class>jsp2.examples.simpletag.HelloTag</tag-class>
- <body-content>empty</body-content>
- </tag>
复制代码 最初再编写一个利用上述标签的JSP页面文件,见代码示例8。
代码示例8:helloworld.jsp- <%@taglibprefix="mytag"uri="/WEB-INF/jsp2/jsp2-example-taglib.tld"%>
- <HTML>
- <HEAD>
- <TITLE>SimpleTagHandler</TITLE>
- </HEAD>
复制代码- <BODY>
- <H2>SimpleTagHandler</H2>
- <P>
- <B>Myfirsttagprints</B>:<mytag:hello/>
- </BODY>
- </HTML>
复制代码 要运转这个例子:
- 复制HelloTg.java并保留到C:Tomcat5.0webappsjsp-examplesWEB-INFclassesjsp2examplessimpletag下;
- 利用javac编译HelloTag.java;
- 把代码示例7中的标签形貌符增加到文件C:Tomcat5.0webappsjsp-examplesWEB-INFjsp2jsp2-example-taglib.tld中的</taglib>之前;
- 复制helloworld.jsp并保留到c:Tomcat5.0webappsjsp-examplesjsp2-tutorial目次中;
- 用扫瞄器翻开helloworld.jsp。
假如统统一般,应当会看到相似如所示的画面。
标签文件
利用复杂标签扩大机制的另外一种办法是经由过程标签文件。标签文件是一种资本文件,网页作者能够使用它抽取一段JSP代码,经由过程定制功效来完成代码的复用。换句话说,标签文件同意JSP网页作者利用JSP语法创立可复用的标签库。标签文件的扩大名必需是“.tag”。
为申明利用标签文件是何等简单,思索一下代码示例9。没错,这就是一个标签文件!
代码示例9:greetings.tag- Hellothere.Howareyoudoing?
复制代码 一旦界说了标签文件,就能够在JSP网页的编写中利用这类定制的功效。好比代码示例10中的JSP网页。
代码示例10:chat.jsp- <%@taglibprefix="tags"tagdir="/WEB-INF/tags"%>
- <HTML>
- <HEAD>
- <TITLE>JSP2.0Examples-HelloWorldUsingaTagFile</TITLE>
- </HEAD>
- <BODY>
- <H2>TagFileExample</H2>
- <P>
- <B>Theoutputofmyfirsttagfileis</B>:<tags:greetings/>
- </BODY>
- </HTML>
复制代码 要运转这个例子:
- 复制标签文件greetings.tags并保留在c:Tomcat5.0webappsjsp-examplesWEB-INF ags目次下;
- 复制JSP网页文件char.jsp并保留在c:Tomcat5.0webappsjsp-examplesjsp2-tutorial目次下;
- 用扫瞄器翻开chat.jsp文件。
假如统统一般,应当会看到相似如所示的窗口。
注重:主要的是要注重到这里没无为问候标签编写TLD,而是创立了一个标签文件并放在特别的目次中,然后用taglib指令导进并间接利用它。
另外一个标签文件的例子
标签文件能够作为模板利用。思索代码示例11中的标签文件display.tag,这个例子是依据Tomcat5.0中的面板的例子改写的。指令attribute相似于TLD中的<attribute>元素,同意声明自界说的举措属性。
代码示例11:display.tag- <%@attributename="color"%>
- <%@attributename="bgcolor"%>
- <%@attributename="title"%>
- <TABLEborder="0"bgcolor="${color}"><TR>
- <TD><B>${title}</B></TD>
- </TR>
- <TR>
- <TDbgcolor="${bgcolor}">
- <jsp:doBody/>
- </TD>
- </TR>
- </TABLE>
复制代码 代码示例12给出了利用上述标签的一个复杂的JSP页面。
代码示例12:newsportal.jsp- <%@taglibprefix="tags"tagdir="/WEB-INF/tags"%>
- <HTML>
- <HEAD>
- <TITLE>AnotherTagFileExample</TITLE>
- </HEAD>
- <BODY>
- <H2>NewsPortal:AnotherTagFileExample</H2>
- <TABLEborder="0"><TRvalign="top">
- <TD>
- <tags:displaycolor="#ff0000"bgcolor="#ffc0c0"
- title="Travel">
- LastFrenchConcordeArrivesinNY<br/>
- AnotherTravelHeadline<br/>
- YetAnotherTravelHeadline<br/>
- </tags:display>
- </TD>
- <TD>
- <tags:displaycolor="#00fc00"bgcolor="#c0ffc0"
- title="Technology">
- Javaforin-flightentertainment<BR>
- AnotherTechnologyHeadline<BR>
- AnotherTechnologyHeadline<BR>
- </tags:display>
- </TD>
- <TD>
- <tags:displaycolor="#ffcc11"bgcolor="#ffffcc"
- title="Sports">
- AmericanFootball<BR/>
- NBA<BR/>
- Soccer<BR/>
- </tags:display>
- </TD>
- </TR>
- </TABLE>
- </BODY>
- </HTML>
复制代码 要运转这个例子:
- 复制文件display.tag并保留在c:Tomcat5.0webappsjsp-examplesWEB-INF ag下;
- 复制文件newsportal.jsp并保留到c:Tomcat5.0webappsjsp-examplesjsp2-tutorial下;
- 用扫瞄器翻开newsportal文件。
了局应当会失掉与相似的画面。
结论
JSP2.0使得疾速开辟和保护静态网页比之前加倍简单,只管“Java”一词呈现在JSP中,但利用JSP2.0,网页作者不必进修Java程序言语自己,就可以开辟出全新的静态网页。本文中的例子申明了利用JSP2.0的新特征开辟静态网页是何等简单。
诸如RMI,EJB等一些技术并不是你说的那么复杂,而是它们把一些复杂的工具封装成不复杂的工具了,理解这些工具是需要些时间。我问你,.net里有这些工具吗?要简单多少?。 |
|