[Seasar-user:22101] Re: f:urlの挙動についての質問
今田 昇
[E-MAIL ADDRESS DELETED]
2015年 8月 31日 (月) 12:51:04 JST
鈴木さん
こんにちは
今田と申します。
まず、
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 メーリングリストの案内