从Javascript向Java类传递null时DWR报告转换器错误

从Javascript向Java类传递null时DWR报告转换器错误,java,javascript,jakarta-ee,Java,Javascript,Jakarta Ee,在我的JavaEEWeb应用程序中,我使用DWR(DirectWebRemoting)实现Ajax Java类有许多int成员,可以通过DWR将其转换为JavaScript对象。例如: // Java public class MyClass { private int id; private String comments; } // the converted JavaScript class var myObject = { id: 100, comme

在我的JavaEEWeb应用程序中,我使用DWR(DirectWebRemoting)实现Ajax

Java类有许多int成员,可以通过DWR将其转换为JavaScript对象。例如:

// Java
public class MyClass {

    private int id;
    private String comments;
}

// the converted JavaScript class
var myObject = {
    id: 100,
    comments: "hello world"
}
但是,当我尝试将id等于null的js对象发送到app server时,DWR报告了以下异常:

Erroring: batchId[7] message[org.directwebremoting.extend.MarshallException: Error marshalling int: Format error converting null. See the logs for more details.]

有人能帮上忙吗?

在Java中,
int
是一种值类型,而不是引用类型。因此,它永远无法被分配值
null
。 另一方面,Javascript使用动态类型。每个变量都可以更改其类型,因此可以为所有变量指定null。 DWR处理生成错误的问题

您有几个选择:

如果需要处理这个值在服务器端可以为null的事实(看起来就是这样),可以使用引用类型,比如
Integer
,而不是
int
。 否则,只需确保始终为Javascript
id
成员分配一个值即可


另一个选项:如果javascript对象的值丢失,DWR可能允许指定默认值

在Java中,
int
是一种值类型,而不是引用类型。因此,它永远无法被分配值
null
。 另一方面,Javascript使用动态类型。每个变量都可以更改其类型,因此可以为所有变量指定null。 DWR处理生成错误的问题

您有几个选择:

如果需要处理这个值在服务器端可以为null的事实(看起来就是这样),可以使用引用类型,比如
Integer
,而不是
int
。 否则,只需确保始终为Javascript
id
成员分配一个值即可

另一个选项:如果javascript对象的值丢失,DWR可能允许指定默认值