【问题标题】:Access Java public statics from XSL从 XSL 访问 Java 公共静态
【发布时间】:2020-03-31 16:45:02
【问题描述】:

我知道可以通过在 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,但其他处理器的答案将来会对其他人有所帮助。

【问题讨论】:

  • 您需要说明您要询问的 XSLT 处理器。 XSLT 和 Java 之间的互操作约定因处理器而异。使用您建议的语法肯定是不可能的,因为您的选择表达式指的是一个将被视为元素名称的名称。

标签: java xslt xslt-1.0 xalan


【解决方案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“访问类中的字段”,建议设置一个方法来返回字段的值。

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多