代码之家  ›  专栏  ›  技术社区  ›  Vivin Paliath

如何在Java中计算JSP标记的名称?

  •  1
  • Vivin Paliath  · 技术社区  · 14 年前

    Tag tag = getParent();
    
    while(tag != null) {
        parents.append("child of ")
               .append(tag.getClass().getName())
               .append("\n");
        tag = tag.getParent();
    }
    

    运行时,我得到以下结果:

    com.mystuff.mvc.tag.MyTag 
    child of org.apache.taglibs.standard.tag.rt.core.IfTag
    child of javax.servlet.jsp.tagext.TagAdapter
    child of javax.servlet.jsp.tagext.TagAdapter
    child of javax.servlet.jsp.tagext.TagAdapter
    child of javax.servlet.jsp.tagext.TagAdapter
    child of javax.servlet.jsp.tagext.TagAdapter
    

    MyTag 是一个Java类,因此我可以从 getName() . 不幸的是两者都不是 Tag TagAdapter 给我一些方法来找出实际标记的名称。 Class.getName() 只返回 javax.servlet.jsp.tagext.TagAdapter .tag 文件夹。我知道 文件最终会转换为 .java 然后编译成 .class awesome.tag 那么相应的文件是 awesome_tag.java 获取名称()

    1 回复  |  直到 14 年前
        1
  •  1
  •   Mike Tunnicliffe    14 年前

    String name = tag.getClass().getName();
    if (tag instanceof TagAdapter) {
      name = ((TagAdapter)tag).getAdaptee().getClass().getName();
    }
    parents.append("child of ").append(name).append("\n");