0

私はSpring3.xWeb MVCアプリケーションのコンテキスト内でDWRを使用しています。ここで、私のdwr-beans.xmlファイルは次のようなBeanを宣言しています。

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

com.mypackage.Customerクラスには、タイプの属性が1つあります(プリミティブBooleanではなく、オブジェクトラッパー)。boolean

この属性には、ビジネスロジックにとって意味のある3つの異なる状態があります。明らかに、真または偽の可能性があります...しかし、null値は、選択がまだ行われていないことを通知するために意味があります。

残念ながら、JavaオブジェクトがDWR AJAX呼び出しを介してJavaScriptに渡されると、null値はfalseJavaScriptオブジェクトの場合と同じように表示されます。私はその3番目の意味のある「上記のどちらでもない」状態を失っています。

残念ながら、Google検索はあまり実りがありませんでした。nullDWRをJavaScript null(または)としてJavaを適切に通過させる方法があるかどうか誰かが知っていますundefinedか?それとも、そもそも何か間違ったことをしているのでしょうか?

4

2 に答える 2

0

これはコードの一部でありPrimitiveConverter、DWRソースコードに含まれています。

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

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

nullを渡すとき、asdまたは他の何かを渡すときはいつでも、結果としてnullを取得します。独自の実装でDWRを拡張することを試みることができますが、それはかなり難しいかもしれません。または、String代わりに3つの状態( "true"、 "false"、 "null")のBeanで使用します。

于 2012-04-20T18:53:37.393 に答える
0

DWRデフォルトでnull値を正しく処理することがわかりました。私の問題はスタックのさらに上にありました...ブラウザとアプリサーバーの間ではなく、アプリサーバーとデータを呼び出していたリモートWebサービスの間でした。

于 2012-04-26T16:38:33.283 に答える