jsp_tag 学习笔记

原创 2007年09月14日 02:09:00

   学习地址:http://java.sun.com/developer/technicalArticles/xml/WebAppDev3/ 

最近要开发java的CMS 系统 只好逼着自己学了,很重要的一部分是自定义标签。研究了一下,还不算太难。

总述:包括 Bodyless Tags 和 Tags with a Body。

1. Develop the Tag Handler

Sample 1: Tag.java

public interface Tag {
   public final static int SKIP_BODY = 0;
   public final static int EVAL_BODY_INCLUDE = 1;
   public final static int SKIP_PAGE = 5;
   public final static int EVAL_PAGE = 6;

   void setPageContext(PageContext pageContext);
   void setParent(Tag parent);
   Tag getParent();
   int doStartTag() throws JspException;
   int doEndTag() throws JspException;
   void release();
}

实现接口或者继承一个已有的类TagSupport,

Sample 2: HelloTag.java

package tags;

import java.io.*;
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

public class HelloTag implements Tag {
   private PageContext pageContext;
   private Tag parent;

   public HelloTag() {
      super();
   }

   public int doStartTag() throws JspException {
      try {
         pageContext.getOut().print(
         "This is my first tag!");
      } catch (IOException ioe) {
         throw new JspException("Error: 
         IOException while writing to client" 
         + ioe.getMessage());
      }
      return SKIP_BODY;
   }

   public int doEndTag() throws JspException {
      return SKIP_PAGE;
   }

   public void release() {
   }

   public void setPageContext(PageContext 
   pageContext) {
      this.pageContext = pageContext;
   }

   public void setParent(Tag parent) {
      this.parent = parent;
   }

   public Tag getParent() {
      return parent;
   }
}

2. Create a Tag Library Descriptor

Sample 3: mytaglib.tld

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib
        PUBLIC "-//Sun Microsystems, Inc.//
        DTD JSP Tag Library 1.1//EN"
        "http://java.sun.com/j2ee/dtds/
        web-jsptaglibrary_1_1.dtd">

<!-- a tag library descriptor -->

<taglib>
   <tlibversion>1.0</tlibversion>
   <jspversion>1.1</jspversion>
   <shortname>first</shortname>
   <uri></uri>
   <info>A simple tab library for the 
   examples</info>

  <tag>
    <name>hello</name>
    <tagclass>tags.HelloTag</tagclass>
    <bodycontent>empty</bodycontent>
    <info>Say Hi</info>
  </tag>         
</taglib>

3. Test the Tag

The final step is to test the tag we have developed. In order to use the tag, we have to reference it, and this can be done in three ways:

  1. Reference the tag library descriptor of an unpacked tag library. For example:

     

    <@ taglib uri="/WEB-INF/jsp/mytaglib.tld" 
    prefix="first" %>
    

     

  2. Reference a JAR file containing a tag library. For example:

     

    <@ taglib uri="/WEB-INF/myJARfile.jar" 
    prefix='first" %>
    

     

  3. Define a reference to the tag library descriptor from the web-application descriptor (web.xml) and define a short name to reference the tag library from the JSP. To do this, open the file: c:/tomcat/webapps/examples/web-inf/web.xml and add the following lines before the end line, which is <web-app>:

        <taglib>
           <taglib-uri>mytags</taglib-uri>
           <taglib-location>/WEB-INF/jsp/
           mytaglib.tld</taglib-location>
        </taglib>
    

Now, write a JSP and use the first syntax. Sample 4 shows an example:

Sample 4: Hello.jsp

<%@ taglib uri="/WEB-INF/jsp/mytaglib.tld"
 prefix="first" %>
<HTML>
<HEAD>
<TITLE>Hello Tag</TITLE>
</HEAD>

<BODY bgcolor="#ffffcc">

<B>My first tag prints</B>:

<first:hello/>

</BODY>
</HTML>
先写这么多了 具体的看教程

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Android学习笔记(二二): 多页显示-Tag的使用

在手机屏幕中,Tab也是比较常用的,通常和List结合,例如我们手机的通信录。下面是Tag的结构。 TabHost是整个Tab的容器,包括两部分,TabWidget和FrameLayout。TabW...

POS Tag 学习笔记

NLP领域的part of speech tag(POS Tag)简单介绍、翻译总结与举例。
  • rk2900
  • rk2900
  • 2014-04-22 18:30
  • 5223

Android学习笔记(二二): 多页显示-Tag的使用

原文出处:http://blog.csdn.net/flowingflying/article/details/6304289 在手机屏幕中,Tab也是比较常用的,通常和List结合,例...

SpringMVC学习笔记--Spring Tag

在Spring框架体系下,可以说规约最少,最不受限制的就是表现层技术了。不像Struts,改定了好多的标签,而且有些功能还和标签绑定了。Sping也定义了一些标签,但这些标签只是给使用者提供了一些方便...

ognl+struts-tag与el+jstl互相代替,以及el和jstl的学习笔记

昨晚在晚上看了许多文章,众多大牛说OGNL性能不行云云,乍一看似乎惨不忍睹,如下图: 于是考虑是否能使用EL+JSTL代替实现前台的标签。 以最近测试用的简单留言板的查看文章页面为例,以下皆省...

Java for Web学习笔记(三十):JSTL(6)FMT Tag(下)

fmt:requestEncodingfmt:requestEncoding说是用来设置请求的编码,但这我们是不需要使用的。对于编码,我们应该在jsp的一开始就设定编码,而不是在半道。<%@ page...

JSP&amp;Servlet学习笔记

  • 2017-08-15 19:50
  • 43.42MB
  • 下载

JSP学习笔记

JSP学习笔记

学习笔记!!

JSP学习笔记

  • 2013-01-08 21:49
  • 668KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)