[Seasar-user:4923] Re: ログインしたユーザー名を取得

Hiroyuki Onagi [E-MAIL ADDRESS DELETED]
2006年 10月 25日 (水) 19:28:50 JST


米林様、本間様 こんにちは。
Onagi です。

ご返答ありがとうございます。

   !解決致しました。
   !原因:”Actionがsingletonでdiconに登録されている”

本間様のご指摘の通りでした。

以下の通りご報告申し上げます。

s2jsf-exampleのaddActionクラス から HttpServletRequest を取得
出来ていたので、自分で作成したプロジェクトへ addAction を使用
したサンプルを移動して動作する事を確認しました。

  -> このことから、 web.xml の設定は問題ない。

次に、add.dicon ファイル と 自分の dicon ファイルを比較した
ところ、アクションを指定している component には、

	 instance="request"

を指定していませんでした。

この指定を追加した所、HttpServletRequest がセットされるように
なりました。

> - Actionがsingletonでdiconに登録されている

本間さんに指摘して頂いたとおりでした。

あらためて Seasar のホームページを見直したところ

  「instance 属性を指定しないと S2Container はデフォルトで 
    singlton としてインスタンスを管理する」

と、instance 属性の説明に記述されていました。

仕様をよく理解していないと
時間のロスになる事を改めて痛感致しました。

米林様、本間様
未熟な私に 適切なアドバイスをして頂き、
本当にありがとう御座いました。
改めてお礼申し上げます。

以上、よろしくお願い致します。



>米林です。
>
>From: <[E-MAIL ADDRESS DELETED]>
>Sent: Wednesday, October 25, 2006 4:10 PM
>
>> 一つ判りました事は、 
>> 「HTML タグの action に指定したメソッドには 
>>   HttpServletRequest は渡されていない。」
>> という点です。
>> 
>>     <html xmlns:m="http://www.seasar.org/maya" 
>>           m:extends="/WEB-INF/layout/base-mp3.html"
>>           m:action="#{initImpl.initialize}">
>> 
>> この点、何かお気づきの点が御座いましたらアドバイス頂けると
>> 助かります。
>
>initActionでもRequestはバインディングされているはずです。
>addActionへ、新たにinitメソッドを作成し
>add.htmlのhtmlタグに
>m:action="#{addAction.init}"
>を追加して、試してみて下さい。
>同じくデバッグが出力される事と思います。
>
>ですので、s2jsf-exampleと作成されたアプリケーションの
>違いを確認してみて下さい。
>
>-web.xmlの差異
>-initImplアクションのスコープ等
>
>---
>米林 正明
>[E-MAIL ADDRESS DELETED]
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://www.seasar.org/mailman/listinfo/seasar-user



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