首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >格式化的超文本标记语言,作为MX4J超文本传输协议页面方法调用的输出

格式化的超文本标记语言,作为MX4J超文本传输协议页面方法调用的输出
EN

Stack Overflow用户
提问于 2010-03-08 16:12:13
回答 2查看 839关注 0票数 0

我有一个巨大的数据集,并希望显示一些格式的数据。

这是该方法的基本外观:

代码语言:javascript
复制
    @ManagedOperation(description = "return html")

    @ManagedOperationParameters({@ManagedOperationParameter(name = "someVal", description = "text")})

    public String returnAsHtml(String someVal)

    {

       return "some formatted xml";    

    }

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-29 15:32:40

我想出的一种方法是在XSL模板中使用java脚本来提取和解析字符串。确保测试浏览器(IE与非IE),并使用正确的解析器。

票数 0
EN

Stack Overflow用户

发布于 2011-01-20 17:49:28

如果有人回到这个问题上来,有两件事浮现在脑海中:

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

它将被传递给InvokeOperationCommandProcessor以创建一个XML文档,其结果只是您返回的内容的toString(),在一个名为'return‘的属性中。它还在一个名为‘return’的属性中传回返回类型。如果您只需将&template=identity添加到invoke URL,就可以看到所有这些内容。

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

您看,您在mbean_attributes.xsl中找到了这段代码,其中的注释显示了您需要执行的操作:

代码语言:javascript
复制
   <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上设置它。这可以替代“调用”处理器,也可以有一个全新的处理器。

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2399993

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档