1
下面的代碼是不是在JBoss中7工作,我也測試了它在Tomcat的7JSP定製標籤:doAfterBody方法不調用
的根本原因是構造函數和doAfterBody方法不會被調用爲<xml>
標籤。即使它正在爲父標記<xslt>
調用。
當子標籤<xml>
移到<xslt>
之外時,它就起作用。這意味着子標籤不被識別。
.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>
標籤類<xml>
標籤:
public class XsltXmlTag extends BodyTagSupport {
public XsltXmlTag() {
log("constructor not invoked.");
}
public int doAfterBody() throws JspException {
log("this method is not invoked.");
...
}
...
}
的jsp:
<%@ taglib uri="xmlx.tld" prefix="x"%>
...
<x:xslt media="html">
<x:xml>
<?xml version="1.0" ?>
...
</x:xml>
...
</x:xslt>
它工作在Tomcat中7,設置<body-content>
而不是把jsp後tagdependent的。但是,在JBoss 7中,tld驗證失敗<body-content>jsp</body-content>
在JBoss 7中,它與<body-content>scriptless</body-content>
一起使用。但是,我有<%= contextPath%>
和<jsp:expression>
裏面的<xml>
標籤。
如何解決?