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文件中对标签处理器类进行描述


浙公网安备 33010602011771号