• 对于自定义标签类中JspBody类的invoke方法的理解


    下面是javaeeAPI中对于invoke()方法的介绍:

    1

    其中的参数out是一个Writer类的对象,如果写null,就是将标签体内容写到了与此jsp相关联的JspWriter对象,也就是下面的w:

    <%
        JspWriter w = pageContext.getOut();
    %>

    这样就可以将标签体的内容输出到浏览器端。

    package online.mytag;
    
    import java.io.IOException;
    
    import javax.servlet.jsp.JspException;
    import javax.servlet.jsp.tagext.SimpleTagSupport;
    
    
    public class IpTag extends SimpleTagSupport {
    
        @Override
        public void doTag() throws JspException, IOException {
            getJspBody().invoke(null);
        }
    }

    但是我们可以写一个其他的Writer类实现类的子类,比如StringWriter类

    2

    这样我们就可以对于标签体内的内容进行操作了,比如转换大小写:

    @Override
        public void doTag() throws JspException, IOException {
            JspFragment jspBody = getJspBody();
            StringWriter sw = new StringWriter();
            //这里就能将标签体中的内容写到sw流中,可以自己做一下操作
            jspBody.invoke(sw);
            //将标签体体中的字母转换为大写
            String msg = sw.toString().toUpperCase();
            //将转换后的内容输出到jsp页面中
            getJspContext().getOut().write(msg);
            
        }

    这也是获取标签体内容的一种方法。

  • 相关阅读:
    如何查找并启动 Reporting Services 工具
    数据压缩技术
    压缩算法
    新版压缩库发布
    如何处理海量数据
    安卓手机获得Root权限
    安卓项目的源码
    压缩算法1
    ODBC, OLEDB, ADO, ADO.Net的演化简史
    C# 文件压缩与解压(ZIP格式)
  • 原文地址:https://www.cnblogs.com/daimajun/p/6588168.html
Copyright © 2020-2023  润新知