0

在我的 GWT 应用程序中,我有一个 javascript 函数,它需要一个数组数组作为参数。我使用 RPC 获取数据,所以我从我的数据库中获取了一个 List<List>。我需要这个,因为我必须填充一种树视图。例如,我从我的 RPC 调用中得到这个:{“A”、“A1”、“A2”}、{“B”、“B1”},我必须将它传递给我的 javascript 函数:[[“A "、"A1"、"A2"]、["B"、"B1"]]。在我的界面中,我想显示:

A+
  A1
  A2
B+
  B1

如何使用 JSNI 将其传递给我的 javascript 函数?

4

1 回答 1

3

如果您可以不使用 DevMode(例如因为您使用 SuperDevMode),那么 Java 数组与JsArray*生产模式String[][]相同,因此与JsArray<JsArrayString>.
在 DevMode 中,有JsArrayUtils哪些可以提供帮助(在 DevMode 中制作副本,在生产模式下按原样返回,没有开销),但不适用于嵌套数组(实际上甚至不适用于字符串数组),因此不适用于您的情况。

如果您需要/想要列表而不是数组或 DevMode 支持,那么您必须将数据复制到JsArray<JsArrayString>.

如果您可以使用数组但需要 DevMode 支持,则可以使用GWT.isScript()创建特定的代码分支:JsArray<JsArrayString>在 DevMode 中复制到 a 中,在 prod 模式下按原样传递数组(这也意味着 2 个 JSNI 方法,forJsArray<JsArrayString>String[][]

于 2012-09-24T08:28:13.947 回答