gpt4 book ai didi

java - 格式化 HTML 作为 MX4J HTTP 页面方法调用的输出

转载 作者:行者123 更新时间:2023-12-01 16:06:52 25 4
gpt4 key购买 nike

我有大量数据,想要以某种格式显示数据。
该方法基本上如下所示:


@ManagedOperation(description = "return html")<br/>
@ManagedOperationParameters({@ManagedOperationParameter(name = "someVal", description = "text")})<br/>
public String returnAsHtml(String someVal)<br/>
{<br/>
return "some formatted xml"; <br/>
}<br/>

看起来 XSLTProcessor 可以配置为使用 XSLT 模板。然而,我在互联网上找不到任何在 MX4J 上下文中使用 XSLT 进行 html 转换的示例。谁能提供一个示例 XSLT 模板吗?

最佳答案

如果有人回到这个问题,我会想到两件事:

1) MX4J 有几个 HttpCommandProcessorAdaptor 的默认实现。这些操作是从路径映射的。对于 JMX 操作(Spring 术语中的 ManagedOperation),MX4J 使用/invoke?operation=returnAsHtml 等 URL

这将被传递到 InvokeOperationCommandProcessor 以创建一个 XML 文档,其结果只是您在名为“return”的属性中返回的任何内容的 toString()。它还在名为“returnclass”的属性中传回返回类型。如果您只需将 &template=identity 添加到调用 URL,您就可以看到这一切。

我提到这一切是因为一种选择是实现您自己的“invoke.xsl”。 MX4J 中的只是调用 renderobject 模板:







你瞧,您在 mbean_attributes.xsl 中找到了这一点,其中的注释准确地显示了您需要执行的操作:

   <xsl:template name="renderobject">
<xsl:param name="objectclass"/>
<xsl:param name="objectvalue"/>
<xsl:choose>
<xsl:when test="$objectclass='javax.management.ObjectName'">
<xsl:variable name="name_encoded">
<xsl:call-template name="uri-encode">
<xsl:with-param name="uri">
<xsl:value-of select="$objectvalue"/>
</xsl:with-param>
</xsl:call-template>
</xsl:variable>
<a href="/mbean?objectname={$name_encoded}">
<xsl:value-of select="$objectvalue"/>
</a>
</xsl:when>
<xsl:otherwise>
<!-- Use the following line when the result of an invocation
returns e.g. HTML or XML data
<xsl:value-of select="$objectvalue" disable-output-escaping="true" />
-->
<xsl:value-of select="$objectvalue"/>
</xsl:otherwise>
</xsl:choose>

将“disable-output-escaping”设置为 true 即可解决问题

2) 另一种选择是编写自己的 HttpCommandProcessorAdaptor,并将其设置在 HttpAdapter 上。这可以替换“调用”处理器,或者您可以拥有一个全新的处理器。

希望有帮助

关于java - 格式化 HTML 作为 MX4J HTTP 页面方法调用的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2399993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com