[Seasar-user:10761] Re: S2DxoのConversionRule指定でIllegalArgumentException

出羽 健一 [E-MAIL ADDRESS DELETED]
2007年 9月 28日 (金) 13:37:18 JST


小林 (koichik)様

出羽です、いつもお世話になっております。

> 簡易指定 (非 OGNL 式) の場合,途中に null があっても
> 例外にならないようにしました (r:2759).

確認できるjarファイルの場所を教えていただけないでしょうか。

自分なりに、リポジトリからソースを取得してjarを作ったのでが、
上手くいきませんでした。jarの作り方が悪いのか、ConversionRule
の記述の仕方が分からないので、原因を切り分けたいと考えております。

ちなみに、テストしてみた Dxoは次のとおりです。
TO_DOMAINの場合は上手く動作するが、TO_DOMAIN_NEWの場合は
OGNLでExcewptionが発生してしまいます。
(TO_PRESENTATIONも同様です)

public interface EmpDxo {
 static final String TO_DOMAIN = "'name' : empName";
	
 static final String TO_DOMAIN_NEW = "name : empName";
	
 static final String TO_PRESENTATION 
	= "'empName' : name, 'deptName' : dept != null ? dept.name : null";

 static final String TO_PRESENTATION_MEW 
	= "empName : name, deptName : dept.name";
		
 @ConversionRule(TO_DOMAIN)
 Emp convert(EmpUpdateConfirmPage page);

 @ConversionRule(TO_PRESENTATION)
 EmpDto[] convert(List<Emp> emps);

 @ConversionRule(TO_PRESENTATION)
 void convert(Emp src, EmpUpdatePage dest);
}

−−−− スタックトレース −−−−
org.seasar.framework.exception.OgnlRuntimeException: [ESSR0073]OGNLで例外が発生しました。理由はsource is null for getProperty(null, "name")
  at org.seasar.framework.util.OgnlUtil#getValue (OgnlUtil.java#100)
  at org.seasar.framework.util.OgnlUtil#getValue (OgnlUtil.java#62)
<<以下省略>>

以上、お手数をお掛けしますが、よろしくお願いします。


> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED]
> [mailto:[E-MAIL ADDRESS DELETED]] On Behalf Of Koichi Kobayashi
> Sent: Monday, September 10, 2007 10:23 PM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:10448] Re: S2DxoのConversionRule指定で
> IllegalArgumentException
> 
> 小林 (koichik) です.
> 
> Date:    Sat, 8 Sep 2007 14:27:35 +0900
> From:    出羽 健一 <[E-MAIL ADDRESS DELETED]>
> To:       <[E-MAIL ADDRESS DELETED]>
> Subject: [Seasar-user:10403] S2DxoのConversionRule指定で
> IllegalArgumentException
> 
> > ■ケース2:null対策用に三項演算子を使ったマッピング
> >  @ConversionRule("'deptName' : dept != null ? dept.name : null")
> >  public EmpDto[] convert(List<Emp> emp);
> >  ⇒ 正常に動きます。
> 
> 簡易指定 (非 OGNL 式) の場合,途中に null があっても
> 例外にならないようにしました (r:2759).
> 
> @ConversionRule("deptName : dept.name")
> public EmpDto[] convert(List<Emp> emp);
> 
> Emp の dept プロパティが null の場合,
> EmpDto の deptName プロパティには null が
> 設定されます.
> 
> OGNL 式を使うケースの多くはヌルポ対策だったと
> 思いますが,その場合は変換先プロパティ名を
> シングルクオートで囲まなくても大丈夫になります.
> 
> 相変わらず OGNL 式との混在はできません.
> OGNL 式の場合はヌルポ対策で 3 項演算子が必要です.
> 
> 
> --
> <signature>
>    <name>Koichi Kobayashi</name>
>    <e-mail>[E-MAIL ADDRESS DELETED]</e-mail>
> </signature>
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user


Seasar-user メーリングリストの案内