[Seasar-user:22102] Re: f:urlの挙動についての質問

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2015年 8月 31日 (月) 15:50:10 JST


今田さん
ご回答ありがとうございます。

大変ぶしつけな内容で申し訳ありません。SAStrutsでversionは最新のもので相違ありませんでした。
OSSソースの対象個所が分からなかったためであたふたしていました。

HttpServletRequest#getContextPathで指定したものとf:urlで指定した、値が同一だったので
ご説明頂いた内容と共に挙動に関して納得致しました。

>> コンテキストルートを決め打ちしたくないからurlファンクションがあるわけで、
>> 決め打ちしたいなら、
>> urlファンクションを使わずにJSPにハードコーディングすればよいのではないでしょうか。

本来であれば上記だと思いますが後から環境を大規模に変更するという要件で、かつ内容としても
リバプロ経由の複数URL接続の時にf:urlのコンテキストルートが期待した値を取得できないといったところで困っておりました。
(アクセスURLに依存しない1位のコンテキストルートを指定したいといった形です)
下記のブログを参照しながらサーブレットフィルタの対応が必要そうだという所です。
http://blog.utils.jp/2008/06/tomcat.html


鈴木


----- Original Message -----
> From: 今田 昇 <n-imada @ sakura-is.co.jp>
> To: "'seasar-user @ ml.seasar.org'" <seasar-user @ ml.seasar.org>
> Cc: 
> Date: 2015/8/31, Mon 12:51
> Subject: [Seasar-user:22101] Re: f:urlの挙動についての質問
> 
> 鈴木さん
> 
> こんにちは
> 今田と申します。
> 
> まず、
> Seasar Projectにはさまざまなプロダクトがあるので、
> 何に関する質問なのかは明示されたほうが良いと思います。
> バージョンも明記するべきです。
> (SAStrutsに関する質問だと思われますが・・・)
> 
> 仕様を確認するには、
> OSSなのでソースを見るのが一番です。
> (どこを見ればよいかわからないという場合もあるでしょうが・・・)
> 
> sa-struts-1.0.4-sp9
> では、
> 
> org.seasar.struts.taglibパッケージの
> S2Functionsクラスのurlメソッドが該当します。
> 
> public static String url(String input) {
>     String contextPath = RequestUtil.getRequest().getContextPath();
> 
> 
> RequestUtil経由ではありますが、
> HttpServletRequestのgetContextPath()メソッドを呼んでいるだけです。
> 
> サーブレットコンテナ側ではWEBサーバーのhttp.confの値などは知る由もないので、
> サーブレットコンテナ側のコンテキストルートを返しているだけです。
> 
> さらに、
> 挙動が納得できない場合は、
> 
> <%@ page contentType="text/html;charset=UTF-8"%>
> <html>
> <head>
> <title>test</title>
> </head>
> <body>
> <h1>test</h1>
> <p>
> ${f:url('/js/test.js')}
> </p>
> <p>
> <%=request.getContextPath() %>/js/test.js
> </p>
> </body>
> </html>
> 
> のような簡単なJSPを書いて、
> urlファンクションが返すコンテキストルートと
> HttpServletRequestが返すコンテキストルート
> を比較してみると良いと思います。
> 
> その場合、
> web.xmlで、
> jspDirectAccessをfalseにしている場合は、
> 実験するときだけtrueに変えてください。
> 
> 無事に解決されることを祈っています。
> 
> なお、
> コンテキストルートを決め打ちしたくないからurlファンクションがあるわけで、
> 決め打ちしたいなら、
> urlファンクションを使わずにJSPにハードコーディングすればよいのではないでしょうか。
> 
> -----Original Message-----
> From: seasar-user-bounces @ ml.seasar.org 
> [mailto:seasar-user-bounces @ ml.seasar.org] On Behalf Of head492 @ yahoo.co.jp
> Sent: Monday, August 31, 2015 10:48 AM
> To: seasar-user @ ml.seasar.org
> Subject: [Seasar-user:22100] f:urlの挙動についての質問
> 
> 鈴木と申します
> 
> f:urlの仕様について伺いたいのですが、このタグのコンテキストルートはどこをみて取得しているのでしょうか。
> WEBサーバを設けているのですが、APサーバーのURLではなくWEBサーバのhttp.confの値を取得する挙動なのでしょうか。
> 
> 構成がどうあってもf:urlで取得できるコンテキストルートを決め打ちしたいのですがそういった方法はないのでしょうか。。。
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
> _______________________________________________
> Seasar-user mailing list
> Seasar-user @ ml.seasar.org
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


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