1

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

4

1 回答 1

6

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

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

这是来自DWR 文档的引用(重点是我的):

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

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

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

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

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

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

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

... 上面的配置就够了,挺好的。

于 2009-03-19T22:07:31.887 回答