从XSL访问Java公共静态变量

时间:2020-03-31 16:45:02

标签: java xslt xslt-1.0 xalan

我知道可以通过在XSL中添加名称空间来调用Java方法。是否可以像使用Java中那样使用getter来访问静态变量?

java:

package com.package;

public class MyClass {

    public static final int myIntThatIUseLotsOfPlacesInJavaAndXSL = 123;

    //other methods, etc

XSL:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:myclass="com.package.MyClass" exclude-result-prefixes="myclass">

...

<xsl:value-of select="myclass:myIntThatIUseLotsOfPlacesInJavaAndXSL"/>

...

编辑:我应该提到我正在使用Xalan,但是其他处理器的答案将来也会对其他人有所帮助。

1 个答案:

答案 0 :(得分:1)

这取决于XSLT处理器,例如商业版中的Saxon 9和10支持

<xsl:value-of select="myclass:myIntThatIUseLotsOfPlacesInJavaAndXSL()" xmlns:myclass="java:com.package.MyClass"/>

根据这本书http://cafeconleche.org/books/xmljava/chapters/ch17s03.html,不可能直接从Xalan中“访问类中的字段”,建议您设置一种返回字段值的方法。