2

私の Java EE Web アプリケーションでは、Ajax に DWR (Direct Web Remoting) を使用しています。

Java クラスには、DWR によって JavaScript オブジェクトに変換できる多数の int メンバーがあります。例えば:

// Java
public class MyClass {

    private int id;
    private String comments;
}

// the converted JavaScript class
var myObject = {
    id: 100,
    comments: "hello world"
}

ただし、id が null の js オブジェクトをアプリ サーバーに送信しようとすると、DWR は次の例外を報告しました。

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

誰でもアイデアを手伝ってもらえますか?

4

1 に答える 1

4

Java ではint、参照型ではなく値型です。したがって、値が割り当てられることはありませんnull。一方、Javascript は動的型付けを使用します。すべての変数はその型を変更できるため、すべてに null を割り当てることができます。DWR は、エラーの発生に対処します。

いくつかのオプションがあります:

この値がサーバー側で null になる可能性があるという事実を処理する必要がある場合 (そのように見えます)、 のInteger代わりに のような参照型を使用できますint。それ以外の場合は、常に Javascriptidメンバーに値を割り当てるようにしてください。

別のオプション: JavaScript オブジェクトの値が欠落している場合、DWR でデフォルト値を割り当てることができるかもしれません。

于 2012-10-16T09:54:36.527 に答える