java - Websphere - Transformer.setParameter 不起作用

标签 java xml xslt websphere transformer-model

我有一个 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>

关于java - Websphere - Transformer.setParameter 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44052731/

相关文章:

javascript - 简单的AJAX检索XML文件中的数据,在 ".responseXML"左右出错

xml - xslt 使用命名空间遍历属性

java - 获取网页中最后加载的元素

xml - 如何有效地为基于 XML 的文本协议(protocol)定义传输结束?

java - 如何在 JFrame 中嵌入 Twitch 流

java - java中的XML解析

twitter-bootstrap - 使用子位置在 XSLT 中创建网格

xml - 使用 XSLT 自动创建 xml 元素

java - 如何从另一个类调用 Activity 方法?

java - 类型不匹配 : cannot convert from Integer to int