2

是否可以使用代码而不是使用路径信息从 restService 获取 json 数据?

寻找类似的东西:getComponent("restService1").get...

<xe:restService id="restService1" pathInfo="rest">
                    <xe:this.service>
                        <xe:jdbcQueryJsonService connectionName="mssql" contentType="application/json">
                            <xe:this.sqlQuery><![CDATA[SELECT * FROM Order]]></xe:this.sqlQuery>
                        </xe:jdbcQueryJsonService>
                    </xe:this.service>
                </xe:restService>
4

1 回答 1

1

如果不深入侵入核心 ExtLib REST 服务,我认为这是不可能的。

在这些服务中,生成输出并将其写入定义的输出流,通常是来自 HttpResponse 的输出流。

为此,您有两种选择:

  1. 通过扩展现有的为jdbcQueryJsonService创建您自己的休息服务,并添加您自己的访问输出流的方法
  2. 使用反射访问保存输出流实例的私有属性

对于这两种选择,我认为这不值得付出努力。创建自己的到 SQL 服务器的 JDBC 连接并自己将结果转换为 JSON 要容易得多。

编辑:

不要忘记您正在访问一个组件。组件对输出一无所知,输出由渲染器根据组件的当前状态生成。虽然 ExtLib REST 服务与 JSF 概念有些不同(它们的输出由 servlet 生成),但模式是相同的。

这就是为什么没有 XPages/JSF 组件有这种方法的原因。

于 2017-11-29T19:53:36.687 回答