[Seasar-user:11728] Re: [S2Dxo]ConversionRuleの記述方法について
M.Kondo
[E-MAIL ADDRESS DELETED]
2007年 11月 20日 (火) 17:19:41 JST
近藤です。
回答、ありがとうございます。
> 森脇と申します。
>
> s2dxoのOGNLについては以下のページ詳しい説明があります。
> http://s2container.seasar.org/2.4/ja/s2dxo.html#ognl
>
> -- 以下転載
>>OGNL式を利用する場合の変換ルールと「変換元プロパティ名の指定」のルールを
>>混在することはできません.
>>OGNL式を使用する場合は,ルール全体で変換先のプロパティ名をシングルクオートで
>>
>>囲む必要があります.
> -- 転載ここまで
>
> なので記述としては正しいと思われます。
なるほど、しっかり記述してあるのに、しっかり見落としていました。orz
> また、以下のスレッドが参考になるのではないでしょうか。
> [Seasar-user:10403] S2DxoのConversionRule指定でIllegalArgumentException
> http://ml.seasar.org/archives/seasar-user/2007-September/012316.html
了解しました。
ありがとうございました。
>
> 07/11/20 に M.Kondo<[E-MAIL ADDRESS DELETED]> さんは書きました:
>> 近藤と申します。
>>
>> S2Dxoで次のような記述を行っています。
>>
>> import org.seasar.extension.dxo.annotation.ConversionRule;
>> pubic interface BazDxo {
>> @ConversionRule("ename : name, dname : department.name")
>> EmployeePage convert(Employee employee);
>> }
>>
>>
>> ここで、departmentがnullになる可能性もでてきたため、以下のように修正しました。
>>
>> @ConversionRule("ename : name, 'dname' : department != null ?
>> department.name : null")
>>
>> そうするとOGNL式の構文エラー(?)でうまくいかなかったため、以下のように修正しました。
>> (変換先のプロパティ名を全てシングルクオート)
>> @ConversionRule("'ename' : name, 'dname' : department != null ?
>> department.name : null")
>>
>> そうすると、意図している動作をするようになりました。
>>
>>
>> このような記述で問題ないでしょうか?
>> また、これで問題ないのであれば、通常(null判定を行わない場合など)の記述方法も
>>
>> @ConversionRule("'ename' : name, 'dname' : department.name")
>> のように指定した方が混乱をまねかないと思うのですが、どうでしょうか?
>>
>> 以上、よろしくお願いします。
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-user
>>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内