Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jsp自定义标记:未调用doAfterBody方法_Java_Jsp_Jboss7.x_Custom Tags - Fatal编程技术网

Java jsp自定义标记:未调用doAfterBody方法

Java jsp自定义标记:未调用doAfterBody方法,java,jsp,jboss7.x,custom-tags,Java,Jsp,Jboss7.x,Custom Tags,下面的代码在JBoss7中不起作用。我还在Tomcat7中测试了它 根本原因是构造函数,并且没有为标记调用doAfterBody方法。即使正在为父标记调用它 当子标记移到之外时,它就工作了。这意味着无法识别子标签 .tld文件: <?xml version="1.0" encoding="UTF-8"?> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2<

下面的代码在JBoss7中不起作用。我还在Tomcat7中测试了它

根本原因是构造函数,并且没有为
标记调用doAfterBody方法。即使正在为父标记调用它

当子标记
移到
之外时,它就工作了。这意味着无法识别子标签

.tld文件:

<?xml version="1.0" encoding="UTF-8"?>

<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name>xx</short-name>
  <uri></uri>

  <tag>
    <name>xml</name>
    <tag-class>com.mycompany.XsltXmlTag</tag-class>
    <body-content>tagdependent</body-content>
  </tag>

  <tag>
    <name>xslt</name>
    <tag-class>com.mycompany.XsltTag</tag-class>
    <body-content>tagdependent</body-content>
  </tag>

</taglib>
jsp:


...
...
...
在将
设置为jsp而不是tagdependent之后,它在tomcat7中工作。但是,在JBoss7中,
jsp的tld验证失败

在JBoss7中,它与
无脚本
一起工作。但是,我在
标签中有
等脚本

如何修复?

设置为无脚本后,将处理子标记
。并且,已将
标记内的脚本替换为自定义标记

public class XsltXmlTag extends BodyTagSupport {

    public XsltXmlTag() {
        log("constructor not invoked.");
    }

    public int doAfterBody() throws JspException {
        log("this method is not invoked.");
        ...
    }

    ...
}
<%@ taglib uri="xmlx.tld" prefix="x"%>

...

<x:xslt media="html">
    <x:xml>
        <?xml version="1.0" ?>
        ...
    </x:xml>

    ...
</x:xslt>