[Seasar-user:4914] Re: ログインしたユーザー名を取得
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2006年 10月 25日 (水) 16:10:05 JST
米林 様
Onagi です。
# 先のメールで、敬称が抜けておりました。
# 申し訳御座いません。
ご返答ありがとうございます。
ご指摘頂きました手順で試してみました。
>5.は必要ないですね。
>http://s2container.seasar.org/ja/DIContainer.html#Request
>上記の通り、s2filterはweb.xmlに記述されていますでしょうか?
了解致しました。
>s2jsf-exampleのaddActionクラスに以下を追加して
>試してみて下さい。
>===========================================
>private HttpServletRequest request;
>
>public void setRequest(HttpServletRequest request) {
> System.out.println("request["+request+"]");
> this.request = request;
>}
>===========================================
s2jsf-exampleのaddAction へご指摘の通り設定しましたところ
次の通り出力されました。
request[[E-MAIL ADDRESS DELETED]]
試しに、
System.out.println("user["+request.getRemoteUser()+"]");
を追加したところ、次のとおりユーザー名を取得する事が出来ました。
user[admin]
米林さん
的確なご返答をありがとう御座いました。
大変助かりました。
一つ判りました事は、
「HTML タグの action に指定したメソッドには
HttpServletRequest は渡されていない。」
という点です。
<html xmlns:m="http://www.seasar.org/maya"
m:extends="/WEB-INF/layout/base-mp3.html"
m:action="#{initImpl.initialize}">
この点、何かお気づきの点が御座いましたらアドバイス頂けると
助かります。
button などから起動される action には渡されている事が判りましたので
ロジックを変更する事を検討致します。
以上、よろしくお願い致します。
>米林です。
>
>From: "Hiroyuki Onagi" <[E-MAIL ADDRESS DELETED]>
>Sent: Wednesday, October 25, 2006 1:27 PM
>
>
>> 米林 様 こんにちは。
>> Onagi です。
>> アドバイスありがとうございます。
>> 早速試してみました。
>>
>> 1.初期化 action クラスへ次の setter を追加してみました。
>>
>> public void setRequest(HttpServletRequest request) {
>> this.request = request;
>> }
>>
>> 2.初期化メソッドで次のとおり、 getRemoteUser() ユーザー名を
>> 取得するコードを追加しました。
>>
>> public final String initialize() {
>> String user = request.getRemoteUser();
>> :
>>
>> 3.結果、this.request に HttpServletRequest がセットされていない為、
>> NullPointerException
>> が返りました。
>>
>> 4.HTML の action は、次の位置へ置いています。
>>
>> <html xmlns:m="http://www.seasar.org/maya" m:extends="/WEB-INF/layout/
>> base-mp3.html"
>> m:action="#{topMenuInitImpl.initialize}">
>>
>>
>> 5.dicon ファイルへ、次の設定を追加してみましたが、やはりうまくいきませ
>> ん。
>>
>> <component class="javax.servlet.http.HttpServletRequest"/>
>>
>> HttpServletRequest が set 出来ていない状況ですが、
>> プロパティ名指定方法など 間違っていますでしょうか?
>
>5.は必要ないですね。
>http://s2container.seasar.org/ja/DIContainer.html#Request
>上記の通り、s2filterはweb.xmlに記述されていますでしょうか?
>
>s2jsf-exampleのaddActionクラスに以下を追加して
>試してみて下さい。
>===========================================
>private HttpServletRequest request;
>
>public void setRequest(HttpServletRequest request) {
> System.out.println("request["+request+"]");
> this.request = request;
>}
>===========================================
>
>よろしくお願いします。
>---
>米林 正明
>[E-MAIL ADDRESS DELETED]
>
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://www.seasar.org/mailman/listinfo/seasar-user
Seasar-user メーリングリストの案内