`
a137268431
  • 浏览: 143956 次
文章分类
社区版块
存档分类
最新评论

JSP中的TAG

 
阅读更多

JSP标签有两种实现方法,一种是使用tag 文件,一种是使用tld文件。

1、使用tag文件

标签名和tag文件名一致, tag文件为JSP文件,可以有属性,把JSP页面当JavaBean文件一样使用。

例子:

1)WEB-INF/lib下放置TAG文件:MyTag.tag,那么就有了一个名为MyTag的标签:

  1. <%@tagpageEncoding="UTF-8"%>
  2. <%@attributename="id"required="true"rtexprvalue="true"%>
  3. <%@attributename="webletID"required="true"rtexprvalue="true"%>
  4. <B>JSPTAGATTRIBUTEGET<B>
  5. <divid="<%=getId()%>"style="border:solid1px#ff0000">
  6. Here,gottheattributevaluebygetmethod:<%=getWebletID()%>
  7. <br>Gottheattributevaluebyvariable:<%=webletID%>
  8. </div>
  9. <script>
  10. </script>
  11. <br>

可定义属性attribute,有变量名(name),是否必需(required)等属性,相当于定义一个JavaBean的属性。在使用属性的值时,可通过get方法来访问或通过变量名的方式来访问。

2)创建引用标签的JSP文件test.jsp,放置于Web目录下,如何WEB-INF同级目录

  1. <%@pagelanguage="java"contentType="text/html;charset=UTF-8"pageEncoding="UTF-8"%>
  2. <%@taglibprefix="mx"tagdir="/WEB-INF/tags"%>
  3. <html>
  4. <head>
  5. <metahttp-equiv="Content-Type"content="text/html;charset=GBK"/>
  6. <title>Tagtest</title>
  7. </head>
  8. <body>
  9. <h1>TagTestisok!</h1>
  10. <mx:MyTagid="Weblet1"webletID="W1001"/>
  11. </body>
  12. </html>

在定义好属性后,就可在TAG被引用时,接受传入参数。标签TAG的属性id,webletID。

3)访问test.jsp,效果如下:

JSP TAG ATTRIBUTE GET

Here, got the attribute value by get method:W1001
Got the attribute value by variable:W1001


2、使用tld文件

tld为XML格式文件,在其中描述标签组件的类和属性等。


方法1的使用比较直接简单,修改标签直接修改JSP文件即可;方法2使用定义方式来描述标签,修改标签需要修改tld描述文件和对应的class文件。


参考:

JSP中的TAG文件和TLD文件小结

在jsp文件中,可以引用tag和tld文件。
1.对于tag文件
<%@ taglib prefix="ui" tagdir="/WEB-INF/tags" %>
其中的tags是个目录,里面有若干tag文件。
但使用<ti:XXXX>时,目录WEB-INF/tags下,必然有个XXXX.tag文件与之对应。

2.对于tld文件
在jsp中可以引用TLD文件,如
<%@ taglib uri="http://struts.apache.org/tags-html"prefix="html"%>
但是这个http://struts.apache.org/tags-html对应着什么呢?
jsp会在当前目录的\WEB-INF下找所有tld文件,确认这个URL对应哪个TLD文件。
当找到struts-html.tld文件时,发现其中的内与这个URL对应。
但使用<html:YYYYY>时,这个TLD文件中必然有个YYYY项与之对应。

还有一种更保险的方法是,在WEB-INF/web.xml中加上
<taglib>
<taglib-uri>
http://jakarta.apache.org/tomcat/examples-taglib
</taglib-uri>
<taglib-location>
/WEB-INF/jsp/example-taglib.tld
</taglib-location>
</taglib>
这样表示http://jakarta.apache.org/tomcat/examples-taglib对应着/WEB-INF/jsp/example-taglib.tld

tag文件作用一般是一段小代码,类似include文件的作用。
tld文件作用比较复杂,可以实现很多高级的作用。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics