[Seasar-user:10817] Re: S2Dxo @ConversionRule について
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2007年 10月 2日 (火) 04:00:08 JST
小林 (koichik) です.
Date: Mon, 01 Oct 2007 21:48:23 +0900
From: "o.h." <[E-MAIL ADDRESS DELETED]>
To: [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:10813] S2Dxo @ConversionRule について
> S2Dxo の @ConversionRule についてなのですが、項目名が1文字の場合
> に値が設定されず null となります.
プロパティ名が一文字というのはテストして
いませんでした.心より恥じる.
> @ConversionRule("あ:foo, a:bar, ああ:baz, aa:qux")
Seasar2.4.17 までは,このような指定は
内部的には
#{'あ':foo, 'a':bar, 'ああ':baz, 'aa':qux}
という OGNL 式に変換して評価していました.
ここでシングルクオートを使っているために,
'あ' や 'a' は String ではなく,Character に
なってしまい,プロパティ名を表す String と
マッチしていませんでした.
とりあえず,
@ConversionRule("\"あ\":foo, \"a\":bar, 'ああ':baz, 'aa':qux")
とすることで回避できます.
# 2 文字以上だと ' でも String になります.
2.4.18 からは,簡易表記では OGNL を使わなく
なったので上記のような回避策は不要となります.
2.4.18 でも複雑なルールを表す場合は OGNL 式を
使うことになりますが,その際に \"a\" みたいに
書きたくはないので,評価結果の Character を
String に変換することにしました.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内