• 自定义标签SimpleTagSupport的应用


    一、 需要继承SimpleTagSupport类:


    public class FormatString extends SimpleTagSupport {
     private String split;

     public void setSplit(String split) {
      this.split = split;
     }
     @Override
     public void doTag() throws JspException, IOException {
      JspFragment jf = this.getJspBody();
      StringWriter sw = new StringWriter();
      jf.invoke(sw); //写入到缓存
      String content = sw.toString(); //获取缓存数据
      String[] arrs = content.split("-");

      String head = arrs[3].substring(0, 3);
      String end = arrs[3].substring(3);
      arrs[3]=head + fillzero(end);
      String result = getstr(arrs);
     
      this.getJspContext().getOut().write(result); //写给浏览器
      
     }
     
     private String fillzero(String val){
      int len = val.length()-6; 
      StringBuffer sb = new StringBuffer();
      if(len<15){
       for(int i=len;i<15;i++){
        sb.append(0);
       }
      }
      sb.append(val);
      return sb.toString();
     }
     private String getstr(String[] arr){
      StringBuffer sb = new StringBuffer();
      for(String s :arr){
       sb.append(s).append(this.split);
      }
      return sb.subSequence(0, sb.length()-1).toString();
     }


    }

    二、为该类写一个tld文件,放到src目录下。

    <?xml version="1.0" encoding="UTF-8" ?>
    <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
        version="2.0">
        <description>A tag library exercising SimpleTag handlers.</description>
        <tlib-version>1.0</tlib-version>
        <short-name>simple</short-name>
        <uri>http://com.web.output.tag</uri>
     <tag>
      <name>format</name>
      <tag-class>com.FormatString</tag-class>
      <body-content>scriptless</body-content>  <!--  取值有四种,为empty,JSP,scriptless,tagdepentend  -->
      <attribute> 
         <name>split</name>
         <required>yes</required>
      </attribute>
      
     </tag> 
    </taglib>

    三、要在jsp界面引入自定义标签,然后通过别名tag就可以使用。

    <%@taglib uri="http://com.web.output.tag" prefix="tag"%>

  • 相关阅读:
    NET Core 2.2
    NET Core项目模板
    Eclipse同时显示多个控制台项目的输出
    Java中的序列化
    Java中的泛型
    Java中的集合
    Java中的数据结构
    Java中的包
    Java中的接口
    Java中的封装
  • 原文地址:https://www.cnblogs.com/lbangel/p/3051829.html
Copyright © 2020-2023  润新知