[cubby-user:148] Re: Cubby1.1.5のFormTagの挙動について
BABA,Yasuyuki
[E-MAIL ADDRESS DELETED]
2009年 5月 29日 (金) 23:17:31 JST
馬場です
こちらでは Tomcat 5.5.27 に cubby-examples-1.1.5.war を ROOT.war にリ
ネームしてデプロイし確認してみましたが、状況は再現できませんでした。
もし、コンテキストパスを path="/" のように設定しているのであれば、path=
"" のように変更してみてどのようになるか確認していただけませんか?
http://ml.seasar.org/archives/cubby-user/2008-March/000027.html
Atsumi Hayashi さんは書きました:
> お世話になっております。林@グルージェントです。
>
>
> Cubby1.1.5のFormTagの挙動について次の現象がありましたので
> 御報告させて頂きます。
>
> FormTagの指定時に
> actionClass
> actionMethod
> を指定している場合に発生する現象です。
>
> -- jsp側 ---------------------------------
>
> <t:form actionClass="HogeAction" actionMethod="hello" />
>
> -- Action側 ---------------------------------
> @Path("hoge")
> public class HogeAction extends Action {
> @Path("hello")
> public ActionResult hello() {
>
> return new Forward("hello.html");
> }
> }
>
> としている状態で、ContextPathがルート『 / 』である場合
>
> htmlとして出力される内容が次の様になります。
>
> <form action="//hoge/hello" />
>
> 『 // 』で始まる文字列として出力される為、サブミット時にURLが
>
> http://hoge/hello?aaa=
>
> となります。
> サーバー名がロストしてしまうため、
> アプリケーションの実行が出来なくなります。
>
>
> これを回避するために、FormTagクラスのdoEndTagメソッドの
>
> final String contextPath = (String) pageContext.getAttribute(
> ATTR_CONTEXT_PATH, PageContext.REQUEST_SCOPE);
> if (linkSupport.isLinkable()) {
> final String characterEncoding = pageContext.getRequest()
> .getCharacterEncoding();
> final String url = contextPath
> + linkSupport.getPath(characterEncoding);
> attrs.put("action", url);
> }
>
> の部分のurlを生成している部分を変更して頂けないでしょうか。
>
> String url;
> if ("/".equals(contextPath)) {
> url = linkSupport.getPath(characterEncoding);
> } else {
> url = contextPath + linkSupport.getPath(characterEncoding);
> }
> attrs.put("action", url);
>
> 以上のように修正して頂けると助かります。
>
>
> LinkTagについても同様の事が発生すると思います。
>
>
> よろしくお願い致します。
>
> _______________________________________________
> cubby-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/cubby-user
--
BABA,Yasuyuki
[E-MAIL ADDRESS DELETED]
cubby-user メーリングリストの案内