Websphere - Transformer.setParameter 不工作
Websphere - Transformer.setParameter not working
我有一个 XSLT,我用它来使用 Java 转换 XML。当我在 Eclipse 中 运行 并使用 Apache Tomcat 时,代码工作正常。但是当我将 ear 文件部署到 WebSphere 时,该字段显示为空白。有人有想法吗?
java 变量 'reportId' 和 'proposalId' 设置为我使用 System.out.println() 并且可以看到值已设置。
Java代码
// 使用工厂创建包含 xsl 文件的模板
Templates template = factory.newTemplates(new StreamSource(is));
// Use the template to create a transformer
Transformer xformer = template.newTransformer();
xformer.setParameter("reportId", reportId);
xformer.setParameter("proposalId", proposalId);
<xsl:param name="proposalId"/>
<xsl:param name="reportId"/>
然后我在 XSLT 中使用以下内容来读取参数:
<td align="left"><b>Proposal Ref: </b> <xsl:value-of select="$proposalId"/>
</td>
<td align="left"><b>Report Id: </b> <xsl:value-of select="$reportId"/>
</td>
我发现我在模板标签中有参数。转换器无法设置模板级变量的值。它只能将其设置在全局级别变量上。所以我的代码是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:param name="proposalId"/>
<xsl:param name="reportId"/>
</xsl:template>
</xsl:stylesheet>
但应该是:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:param name="proposalId"/>
<xsl:param name="reportId"/>
<xsl:template match="/">
</xsl:template>
</xsl:stylesheet>
我有一个 XSLT,我用它来使用 Java 转换 XML。当我在 Eclipse 中 运行 并使用 Apache Tomcat 时,代码工作正常。但是当我将 ear 文件部署到 WebSphere 时,该字段显示为空白。有人有想法吗?
java 变量 'reportId' 和 'proposalId' 设置为我使用 System.out.println() 并且可以看到值已设置。
Java代码 // 使用工厂创建包含 xsl 文件的模板
Templates template = factory.newTemplates(new StreamSource(is));
// Use the template to create a transformer
Transformer xformer = template.newTransformer();
xformer.setParameter("reportId", reportId);
xformer.setParameter("proposalId", proposalId);
<xsl:param name="proposalId"/>
<xsl:param name="reportId"/>
然后我在 XSLT 中使用以下内容来读取参数:
<td align="left"><b>Proposal Ref: </b> <xsl:value-of select="$proposalId"/>
</td>
<td align="left"><b>Report Id: </b> <xsl:value-of select="$reportId"/>
</td>
我发现我在模板标签中有参数。转换器无法设置模板级变量的值。它只能将其设置在全局级别变量上。所以我的代码是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<xsl:param name="proposalId"/>
<xsl:param name="reportId"/>
</xsl:template>
</xsl:stylesheet>
但应该是:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:param name="proposalId"/>
<xsl:param name="reportId"/>
<xsl:template match="/">
</xsl:template>
</xsl:stylesheet>