[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 メーリングリストの案内