[Seasar-user:13340] Re: [S2Mai]パブリックフィールド対応依頼

[E-MAIL ADDRESS DELETED]
2008年 3月 19日 (水) 14:13:54 JST


S2Maiコミッタの六です。

S2Maiでは、テンプレートファイルへの埋め込みはFreeMarkerおよび
Velocityに処理を任せています。

なので、テンプレートエンジン側がパブリックフィールドに対応されないと
こちらも対応しようがないというのが現状です。

あとはS2Mai側でパブリックフィールドを読んで、テンプレートエンジンに
読めるような形に詰め替えて送るようになろうかと、
今思いついてる限りではそんな形になるかと思うのですが
実装の負担(バグのリスクなど)や実行時のコストなども考慮しないといけないので
ちょっと現時点では対応するかしないかはっきり判りません。

引き続き色々と調べたいとは思ってますが、
お急ぎでしたらPageクラスとは別にメール用のDtoをsetter/getter付で作って頂いて、
Dxoなどで値をコピーして頂くのが設計ポリシー上もよろしいかと思います。



08/03/18 に 小林正和<[E-MAIL ADDRESS DELETED]> さんは書きました:
> お世話になってます。masapon1967です。
>
>  今回、Teeda + S2Dao + S2Maiという組み合わせで、
>  画面に入力した値を固定のアドレスにメールをするということをしています。
>
>  Page(HogePage)のフィールドをパブリックフィールドにしたところ、ちゃんと画面に入力した
>  値をとってこれています。
>  S2Mai用のインターフェイス「HogeMai」のsendメソッドの引数に、このページ(HogePage)を
>  そのまま渡して、このページのパブリックフィールドの値を本文中に埋め込もうとしました。
>  しかしながら、パブリックフィールドをS2Maiがサポートしていないようで、フィールド名が
>  そのままメール本文に書き出されています。
>
>  具体的には、
>
>  class HogePage{
>     public String foo;
>  }
>
>  interface HogeMai{
>     @From(@MailAddr(address="[E-MAIL ADDRESS DELETED]"))
>     @To(@MailAddr(address="[E-MAIL ADDRESS DELETED]"))
>     @Subject("Help Me")
>     void send(HogePage hogePage);
>  }
>
>  HogeMai_send.vmで、
>  ヘルプは $data.foo 宛てに
>
>  このように設定して実行したところ、メール本文には、
>  「ヘルプは $data.foo 宛てに」となってしまいます。
>  HogePageのfooにgetter/setterを追加することにより
>  fooの値に置換されます。
>
>  前置きが長くなりましたが、S2Maiで、Maiインターフェイスのメソッドに渡す
>  オブジェクトのフィールドがパブリックフィールドのときにも値が置換されるように
>  していただきたいのですが、いかがでしょうか。
>
>
>  --
>  ----------------------------------------------
>  Masakazu Kobayashi
>  _______________________________________________
>  Seasar-user mailing list
>  [E-MAIL ADDRESS DELETED]
>  https://ml.seasar.org/mailman/listinfo/seasar-user
>


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