[Seasar-user:5270] Re: [S2Dxo] ネストしたBeanの変換で例外発生

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2006年 11月 25日 (土) 07:00:09 JST


小林 (koichik) です.

Date:    Sat, 25 Nov 2006 06:18:40 +0900
From:    KOMORI Yusuke <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:5269] [S2Dxo] ネストしたBeanの変換で例外発生

>  @ConversionRule("mname : manager.ename")
>  EmployeeDto convert(Employee employee)
> 
>  これで、EmployeeDto の mname には、Employee が持っている manager の 
> ename が設定されますよね。
> 
>  通常はこれでうまくいくのですが、manager が null の場合、以下のようなOGNL 
> の例外が発生してしまいます。

現状,ここは丸ごと OGNL で評価させているので,S2Dxo での
対処は難しいかも.一応調べてみますが.
OGNL に NullHandler というものがあるのでそれを使えば
いいのかもしれませんが,S2 本体に影響を与えてしまいそう.

>  ConversionContextImpl あたりで対処すれば良さそうなんですが、Ognl の使
> い方が分かっていないので、あきらめました・・・

OGNL は Java みたいなものなので 3 項演算子が使えます.

@ConversionRule("'mname' : manager != null ? manager.ename : null")

この場合は変換先のプロパティ名 (コロンの左辺) をシングル
クオートで囲んでください.


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