我在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
值在JavaScript对象上显示为false
。我失去了第三个有意义的“上述两种状态”。
不幸的是,谷歌搜索并不是很有成效。有没有人知道是否有办法让DWR作为JavaScript null
(或null
)正确地通过Java undefined
传递?或者我可能首先做错了什么?
答案 0 :(得分:0)
这是一段代码,可以在PrimitiveConverter
DWR源代码
if (paramType == Boolean.class)
{
if (trimValue.length() == 0)
{
return null;
}
return (T) Boolean.valueOf(trimValue);
}
每当您传递null
,asd
或其他任何内容时,您都会获得null。您可以尝试使用自己的实现来扩展DWR,这可能相当棘手。或者使用String
代替您的bean,状态为3(“true”,“false”,“null”)。
答案 1 :(得分:0)
事实证明,默认情况下DWR 正确处理空值。我的问题是进一步上升...不是在浏览器和应用服务器之间,而是在应用服务器和它正在调用数据的远程Web服务之间。