私はクラスがBigDecimal
です。 EL式にバインドしてnull-valueExpression.set(context, null)
を渡すと、プロパティの新しい値はBigDecimal.ZERO
になります。EL式:BigDecimalフィールドの値としてnullを渡します。
0に変換せずにBigDecimal
フィールドにnullを渡す方法はありますか?
私はクラスがBigDecimal
です。 EL式にバインドしてnull-valueExpression.set(context, null)
を渡すと、プロパティの新しい値はBigDecimal.ZERO
になります。EL式:BigDecimalフィールドの値としてnullを渡します。
0に変換せずにBigDecimal
フィールドにnullを渡す方法はありますか?
バージョン6.0.16以上のTomcatやJBoss ASのようなフォークを実行しているようです。 Tomcatの組み込みApache ELパーサーは、実際にはNumber
を拡張するすべてのクラスでそれを行います。あなたは(実際に直感的であるが、残念ながら、厳密EL仕様ごとなど)、この動作を無効にするには、次のVM引数を追加する必要があります。
-Dorg.apache.el.parser.COERCE_TO_ZERO=false
もJSP/EL spec issue 184とTomcat issue 42385を参照してください。
ありがとう、それは動作します! –
ようこそ。 – BalusC
これは、Tomcat 8に移行する際に影響を受けたので、他の人が(そのTomcatバージョンでは)設定されています**デフォルトではfalseです** - [リンク](http://tomcat.apache.org/ tomcat-8.0-doc/config/systemprops.html) –
BigDecimalはEL式で処理されますか?私は、ブール、整数、浮動小数点と文字列とヌルを見ることができます。 – montardon
はい、それらは処理されますが、時には予期しない方法で - 数値演算を実行しようとします。 –