2012-04-20 6 views
0

に変換し、私は私のdwr-beans.xmlファイルは、このようなBeanを宣言する春の3.xのWeb MVCアプリケーションのコンテキスト内DWRで働いています:DWRは、null値を渡してください、というよりも偽

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

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

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

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

Googleの検索はあまり実りありませんでしたが、残念なことにDWRを適切にJava全体に渡す方法があるかどうかを知っていますかnull JavaScript null(またはundefined)?あるいは、私は最初に何か間違っているかもしれませんか?

答えて

0

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

0

これは、結果としてnullasdまたは何か他のものあなたがきたのgetはnullを渡すたびDWRのソースコードのPrimitiveConverter

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

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

で見つけることができるコードの一部です。独自の実装でDWRを拡張しようとすると、ややこしいことになります。または、3つの状態( "true"、 "false"、 "null")のBeanで代わりにStringを使用してください。

+0

あなたの最後の文章は私の頭を越えていますが、どこかでDWRに「カスタムコンバータ」クラスを差し込むところまではどこから始めるべきかわかりません... –

関連する問題