jsp自定义标签

一、自定义标签的作用

  自定义标签主要用于移除Jsp页面中的java代码。

二、自定义标签开发和使用

2.1、自定义标签开发步骤

   1、编写一个实现Tag接口的Java类(标签处理器类)

复制代码
 1 package me.gacl.web.tag;
 2 
 3 import java.io.IOException;
 4 
 5 import javax.servlet.http.HttpServletRequest;
 6 import javax.servlet.jsp.JspException;
 7 import javax.servlet.jsp.JspWriter;
 8 import javax.servlet.jsp.PageContext;
 9 import javax.servlet.jsp.tagext.Tag;
10 
11 public class ViewIPTag implements Tag {
12 
13     //接收传递进来的PageContext对象
14     private PageContext pageContext;
15     
16     @Override
17     public int doEndTag() throws JspException {
18         System.out.println("调用doEndTag()方法");
19         return 0;
20     }
21 
22     @Override
23     public int doStartTag() throws JspException {
24         System.out.println("调用doStartTag()方法");
25         HttpServletRequest request =(HttpServletRequest) pageContext.getRequest();
26         JspWriter out = pageContext.getOut();
27         String ip = request.getRemoteAddr();
28         try {
29             //这里输出的时候会抛出IOException异常
30             out.write(ip);
31         } catch (IOException e) {
32             //捕获IOException异常后继续抛出
33             throw new RuntimeException(e);
34         }
35         return 0;
36     }
37 
38     @Override
39     public Tag getParent() {
40         return null;
41     }
42 
43     @Override
44     public void release() {
45         System.out.println("调用release()方法");
46     }
47 
48     @Override
49     public void setPageContext(PageContext pageContext) {
50         System.out.println("setPageContext(PageContext pageContext)");
51         this.pageContext = pageContext;
52     }
53 
54     @Override
55     public void setParent(Tag arg0) {
56 
57     }
58 
59 }
复制代码

  2、在WEB-INF/目录下新建tld文件,在tld文件中对标签处理器类进行描述

  

posted @ 2024-02-29 18:11  vvvcutee  阅读(26)  评论(0)    收藏  举报