我知道可以通过在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,但是其他处理器的答案将来也会对其他人有所帮助。
答案 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中“访问类中的字段”,建议您设置一种返回字段值的方法。