java - XSLT 1.0 试图在内部实现 java 代码,但总是以错误结束
问题描述
我刚刚加入了他们仍然使用旧 XSLT 1.0/1.1 打印文档的项目。我要写更多的逻辑,所以我对 xalan.java/js 做了一些研究,但我不知道为什么我不能直接在我的 xsl 文件中实现 java 代码,它总是会出错。我整天都在研究,我不得不在这里问。
我的问题是,是否可以像下面的示例一样打印出函数值?
我注意到导入 java 构建的函数效果很好
<xsl:template match="/">
<fo:block>
test over there:
<xsl:call-template name="currentTime"/>
</fo:block>
</xsl:template>
<xsl:template name="currentTime" xmlns:java="http://xml.apache.org/xslt/java">
<xsl:value-of select="java:java.util.Date.new()"/>
</xsl:template>
但是当我尝试用 xalan 调用 java 时,它会崩溃
<xsl:template match="/">
<fo:block>
java test over there:
<xsl:call-template name="currentTime"/>
</fo:block>
</xsl:template>
<xsl:template name="currentTime" xmlns:java="http://xml.apache.org/xslt/java" xmlns:xalan="http://xml.apache.org/xalan" xmlns:counter="MyCounter" extension-element-prefixes="counter">
<xalan:component prefix="counter" functions="response">
<xalan:script lang="java">
public String response(name) {
return "" + (name);
}
</xalan:script>
</xalan:component>
<xsl:value-of select="counter:response('hello')"/>
</xsl:template>
解决方案
推荐阅读
- php - 如何在单个屏幕中按类别和子类别显示所有产品?
- java - spring LDAP 不会抛出特定的错误代码
- javascript - 使用国家代码 +39 06 时 google-libphonenumber 的问题
- python - 我正在尝试在 Python 中使用 Matplotlib 执行代码,并在将 fill_between() 用于 matplotlib 3.3.0 时遇到以下问题
- java - 如何将 Build>Project 绑定到 Javatar(Sublime Text 3)中的键?
- java - 如何为 TestNG java.util.concurrent.Ex 使用 threadLocal
- c++ - C ++编译时检查一个函数是否在另一个函数之前调用
- java - 条件 API 谓词:按一列分组,在另一列上找到最小行,然后返回第三个
- javascript - 对象数组比字典效率低吗?
- javascript - Chart js 饼图,深色表示较高的值,较浅的阴影表示较低的值。我每月显示值