DWR 非常直接地处理原语列表。我无法确定 DWR 方法调用返回的对象数组是否表示 JSON 对象。有什么线索吗?或者我是否必须将表示对象数组的 JSON 字符串返回给浏​​览器?

有帮助吗?

解决方案

这个答案有点晚了,但这里是:)

好消息:DWR 还以非常直接的方式处理 Java 数组和集合。只需返回它们,在客户端您将获得 JavaScript 数组对象。(在典型情况下,例如数组或集合中的基元或字符串。如果内容比较奇特,您可能需要定义转换器;更多内容见下文。)

这是引用自 DWR 文档 (强调我的):

默认情况下,所有以下所有内容都会为您转换而没有进一步的声明:

  • 所有原始类型,boolean、int、double 等。
  • 这些布尔值、整数等的基于类的版本。
  • java.lang.String
  • java.util.Date 和 3 个 SQL 衍生物
  • 上面的数组
  • 上述集合(列表、集合、映射、迭代器等)
  • 来自 DOM、XOM、JDOM 和 DOM4J 的 DOM 对象(如 Element 和 Document)

因此,您绝对不需要这些 JSON 字符串(尽管对于更复杂的数据结构来说,这可能是一个不错的选择)。

实际上,您可以返回更多种类的对象,而无需进行大量手动工作,因为 DWR 附带“转换器“适用于许多典型用途。例如,要使您的自定义“bean”样式 Java 对象在客户端 JS 中工作,您只需在 dwr.xml 是你想使用 豆转换器:

<convert converter="bean" match="com.company.YourBean" />

即使您的方法返回这些 bean 对象的列表(或数组)...

public static List<YourBean> getData(){ ... }

...上面的配置就够了,还不错。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top