0

我在 Spring 3.x Web MVC 应用程序的上下文中使用 DWR,我的dwr-beans.xml文件在其中声明了一个像这样的 bean:

<dwr:configuration>
    <dwr:convert type="bean" class="com.mypackage.Customer"/>
</dwr:configuration>

该类com.mypackage.Customer具有一个类型属性Boolean(对象包装器,而不是boolean原语)。

此属性具有对业务逻辑有意义的三种不同状态。显然,它可以是真或假……但是一个null值对于表示尚未进行选择的信号是有意义的。

不幸的是,当一个 Java 对象通过 DWR AJAX 调用传递给 JavaScript 时……一个null值显示false在 JavaScript 对象上。我正在失去第三个有意义的“以上都不是”状态。

不幸的是,谷歌搜索并不是很有成效。有谁知道是否有办法让 DWRnull作为 JavaScript null(或undefined)正确地通过 Java 传递?或者我可能一开始就做错了什么?

4

2 回答 2

0

事实证明,默认情况下 DWR确实可以正确处理空值。我的问题更进一步……不是在浏览器和应用服务器之间,而是在应用服务器和它调用数据的远程 Web 服务之间。

于 2012-04-26T16:38:33.283 回答
0

这是一段代码,可以在PrimitiveConverterDWR 源代码中找到

if (paramType == Boolean.class)
{
    if (trimValue.length() == 0)
    {
        return null;
    }

    return (T) Boolean.valueOf(trimValue);
}

每当您通过或其他任何事情时nullasd您都会得到 null 作为结果。您可以尝试使用自己的实现来扩展 DWR,这可能会相当棘手。或者String在您的 bean 中使用 3 种状态(“true”、“false”、“null”)。

于 2012-04-20T18:53:37.393 回答