zoukankan      html  css  js  c++  java
  • JSP 简单标签extends SimpleTagSupport

    1.控制JSP页面某一部分内容是否执行

    public void doTag()

    this.getJspBody().invoke(null);执行

    空白,不执行

    2.控制JSP页面内容重复执行

     1 package cn.itcast.web.simpletag;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.jsp.JspException;
     6 import javax.servlet.jsp.tagext.JspFragment;
     7 import javax.servlet.jsp.tagext.SimpleTagSupport;
     8 
     9 public class SimpleTagDemo2 extends SimpleTagSupport {
    10 
    11     @Override
    12     public void doTag() throws JspException, IOException {
    13         // TODO Auto-generated method stub
    14         JspFragment jf = this.getJspBody();
    15 
    16         for (int i = 0; i < 10; i++) {
    17             jf.invoke(null);
    18         }
    19     }
    20 
    21 }

    3.修改JSP页面内容输出

     1 package cn.itcast.web.simpletag;
     2 
     3 import java.io.IOException;
     4 import java.io.StringWriter;
     5 
     6 import javax.servlet.jsp.JspContext;
     7 import javax.servlet.jsp.JspException;
     8 import javax.servlet.jsp.tagext.JspFragment;
     9 import javax.servlet.jsp.tagext.SimpleTagSupport;
    10 
    11 public class SimpleTagDemo3 extends SimpleTagSupport {
    12 
    13     @Override
    14     public void doTag() throws JspException, IOException {
    15         // TODO Auto-generated method stub
    16 
    17         JspFragment jf = this.getJspBody();
    18         StringWriter sw = new StringWriter();
    19         jf.invoke(sw);
    20 
    21         String content = sw.getBuffer().toString();
    22 
    23         content = content.toUpperCase();
    24 
    25         JspContext pageContent = this.getJspContext();
    26         pageContent.getOut().write(content);
    27     }
    28 
    29 }

    4.控制标签余下的JSP不执行

     1 package cn.itcast.web.simpletag;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.jsp.JspException;
     6 import javax.servlet.jsp.SkipPageException;
     7 import javax.servlet.jsp.tagext.SimpleTagSupport;
     8 
     9 public class SimpleTagDemo4 extends SimpleTagSupport {
    10 
    11     @Override
    12     public void doTag() throws JspException, IOException {
    13         // TODO Auto-generated method stub
    14         throw new SkipPageException();
    15     }
    16 
    17 }

    开发带属性的标签

    要想让一个自定义标签具有属性,通常需要完成两个任务:

    在标签处理器中编写每个属性对应的setter方法

     1 package cn.itcast.web.simpletag;
     2 
     3 import java.io.IOException;
     4 
     5 import javax.servlet.jsp.JspException;
     6 import javax.servlet.jsp.tagext.SimpleTagSupport;
     7 
     8 public class SimpleTagDemo5 extends SimpleTagSupport {
     9 
    10     private int count;
    11 
    12     public void setCount(int count) {
    13         this.count = count;
    14     }
    15 
    16     @Override
    17     public void doTag() throws JspException, IOException {
    18         // TODO Auto-generated method stub
    19 
    20         for (int i = 0; i < count; i++) {
    21             this.getJspBody().invoke(null);
    22         }
    23     }
    24 
    25 }

    在tld文件中描述标签的属性

     1     <tag>
     2         <name>demo5</name>
     3         <tag-class>cn.itcast.web.simpletag.SimpleTagDemo5</tag-class>
     4         <body-content>scriptless</body-content>
     5         <attribute>
     6             <name>count</name>
     7             <required>true</required>
     8             <rtexprvalue>true</rtexprvalue>
     9         </attribute>
    10     </tag>
  • 相关阅读:
    C# 关于爬取网站数据遇到csrf-token的分析与解决
    Nginx实现同一端口HTTP跳转HTTPS
    Console也要美颜了,来给Console添色彩
    程序员如何巧用Excel提高工作效率
    LeetCode每日一练(1-3)
    Json对象转Ts类
    JcApiHelper 简单好用的.Net ApiHelper
    .Net Core Mvc/WebApi 返回结果封装
    C#光盘刻录
    Orm框架开发之NewExpression合并问题
  • 原文地址:https://www.cnblogs.com/denggelin/p/8159826.html
Copyright © 2011-2022 走看看