[Seasar-user:16526] Re: [SAStruts][Mayaa]Mayaa からJavaインスタンスの任意のメソッドをコールできない
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2008年 12月 17日 (水) 14:25:21 JST
ひがです。
> いつも大変お世話になっております。
> iceと申します。
>
> SAStruts+Mayaaの環境で開発を進めておりますが、
> 下記の挙動に苦しめられております。
>
> お気づきの点がございましたらアドバイスをいただきたくお願いいたします。
>
> ■内容
> Actionのpublicフィールド経由でMayaaに渡したインスタンスから任意のメソッドをコール出来ない。
>
SAStrutsでは、リクエストの属性にセットするときに、
JavaBeansをMapでくるんでいるので、
Mayaaから直接呼び出すことはできません。
actionからたどれば、生のJavaBeansを扱うことができます。
sampleAction.sampleDto.empty()
のような感じになります。
> ■サンプルコード
> ---------------------------------------------------------------------
> 【.Action】
>
> // publicフィールドで宣言(別の箇所でインスタンス化しています。)
> public SampleDto sampleDto;
>
> ---------------------------------------------------------------------
> 【SampleDto.java】
>
> @Component( instance = InstanceType.SESSION )
> public class SampleDto implements Serializable {
>
> public boolean isEmpty(){
> return true;
> }
>
> }
> ---------------------------------------------------------------------
> 【.mayaa】
>
> <m:beforeRender>
> <![CDATA[
> // デバッグ出力用
> function print( arg ){
> java.lang.System.out.println( "" + arg );
> }
>
> // Mayaa上でインスタンス化した場合、
> var mayaaDto = new Packages.jp.co.dto.SampleDto();
>
> // メソッド呼び出し可能。
> print( mayaaDto.isEmpty() );
>
> // Actionのpublicフィールド経由で取得した場合、下記例外発生
> print( sampleDto.isEmpty() );
>
> // 【ご参考】この形式だと上記メソッドの呼び出しが可能
> print( sampleDto.empty )
>
> </m:beforeRender>
>
> ---------------------------------------------------------------------
> ■発生した例外
> Wrapped java.lang.UnsupportedOperationException: isEmpty in script=...
>
>
> 以上、よろしくお願いいたします。
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内