• JSP 自定义标签例子(BodyTagSupport)


    1.在WEB-INF下新建一个stag.tld文件 

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag 
    Library 1.2//EN"
    "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
    <taglib>
            <tlibversion>1.0</tlibversion>
            <jspversion>1.1</jspversion>
            <shortname>tbl</shortname>
       <tag>
            <name>stag</name>
            <tagclass>test.MyTag</tagclass>
            <bodycontent>JSP</bodycontent>
            <info>To Convert in Upper case tag</info>
       </tag>
    </taglib>

    2.

    package test;
    
    import javax.servlet.*;
    import javax.servlet.jsp.*;
    import javax.servlet.jsp.tagext.*;
    import java.util.*;
    import java.io.*;
    
    public class MyTag extends BodyTagSupport 
    {
        public int doAfterBody() throws JspException {
          try {
             BodyContent bodycontent = getBodyContent();
             System.out.println("---------bodycontent---------:"+bodycontent);
             String body = bodycontent.getString();
             System.out.println("---------body---------:"+body);
             JspWriter out = bodycontent.getEnclosingWriter();
             System.out.println("---------out---------:"+out);
             if(body != null) {
                out.print(body.toUpperCase());
             }
          } catch(IOException ioe) {
             throw new JspException("Error:"+ioe.getMessage());
          }
          return SKIP_BODY;
      }
    
        @Override
        public int doEndTag() throws JspException {
            System.out.println("---------doEndTag()----------");
            return super.doEndTag();
        }
    
        @Override
        public void doInitBody() throws JspException {
            System.out.println("---------doInitBody()----------");
            super.doInitBody();
        }
    
        @Override
        public int doStartTag() throws JspException {
            System.out.println("---------doStartTag()----------");
            return super.doStartTag();
        }
    }

    3.

    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    <%@ taglib uri="/WEB-INF/stag.tld" prefix="tbl" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>My JSP 'index.jsp' starting page</title>
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <!--
        <link rel="stylesheet" type="text/css" href="styles.css">
        -->
      </head>
      
      <body>
        <tbl:stag>
            hello ! BodyTagSupport例子
        </tbl:stag>
      </body>
    </html>

     

  • 相关阅读:
    自定义提示框(alert、confirm 可自定义标题 内容 图标 取消按钮)
    Node.js 技術
    ASP.NET MVC+Spring.net+Nhibernate+EasyUI+Jquery开发案例(1)
    Memcached 命令简介
    MySQL 请选择合适的列
    WCF光芒下的Web Service
    如何实现共享软件网络授权认证,包括注册新用户、登录、修改密码等操作
    SOA面向服务架构简述
    Python Web 框架, 使用 Django 和 Python 开发 Web 站点
    Interface继承至System.Object?
  • 原文地址:https://www.cnblogs.com/zendwang/p/2607768.html
Copyright © 2020-2023  润新知