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