[Seasar-user:3393] Re: form actionの遷移先指定について
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2006年 3月 18日 (土) 16:02:29 JST
米林です
From: "takada takeshi" <[E-MAIL ADDRESS DELETED]>
Sent: Saturday, March 18, 2006 2:26 PM
> みなさま はじめまして。
> つい先週よりS2関連プロダクトにふれはじめ、
> その技術はもちろん、かわいらしいシーサーのイラストにも
> すっかり心を奪われた高田と申します。
>
> ただいま青い本片手に勉強中の身ですが、
> どうぞよろしくお願いいたします。
>
>
> ところで早速で恐縮なのですが、
> 現在Apacheのmod_rewriteを使ったURI操作と
> S2JSFによるフォームアクションの動作の連携について
> 質問よろしいでしょうか。
>
>
> 基本環境は以下の通りで、
>
> ・S2Container 2.3.7
> ・Tomcat 4.1.31
> ・Apache 2.0.54-10
>
> ApacheとTomcatの連携には mod_jk2 を使用し
> workers2.properties では次のように設定しています。
>
> ====================
> [uri:/*.jsp]
> [uri:/*.do]
> [uri:/servlet/*]
> [uri:/*.html]
> ====================
>
> また作成しているアプリケーションは
> S2JSF Blank 1.0.13をベースとして
> $TOMCAT_HOME/webapps 以下に "test"という名で配置し、
> S2JSF Example 1.0.13 よりファイルをコピー・修正
> しながらテストしています。
>
> 現在の所のファイルシステム構成は
> ======================
> $TOMCAT_HOME/webapps
> test/
> a/
> b/
> c/
> WEB-INF/
> ======================
> という状況です。
>
>
>
> 実現したいことは、ディクレトリへのアクセスを
> サブドメインとして受けるWEBアプリです。
>
> Apacheのhttpd.confでは
> =======================================================
> RewriteEngine On
> RewriteCond %{HTTP_HOST} ^((a|b|c|)+)\.test\.jp\(:80)?
> RewriteRule ^(.*) %{HTTP_HOST}$1 [C]
> RewriteRule ^([^.]+)\.test\.jp(.*) /$1$2 [PT,L]
> =======================================================
> という設定を行い、
> 例えば http://a.test.jp/ へのアクセスは
> DocumentRoot以下 aディレクトリを参照するように
> 設定しました。
>
> ですので、http://a.test.jp/foo.html を呼ぶと
> $TOMCAT_HOME/webapps/test/a/foo.htmlが実行されます。
>
>
> ここでいよいよS2JSFを試そうと、
> exampleにあるadd.htmlをaディレクトリに設置してみたところ
> http://a.test.jp/add.html にアクセスすることで
> 無事足し算プログラムのフォームが表示されました。
>
> しかし、submitボタンを押したところ
> http://a.test.jp/a/foo.html
> に遷移し、not foundのエラーとなってしまいました。
>
> ロジックやDTO関連のソースは省略いたしますが、
> add.htmlは以下のようになっています。
> ==================================================
> <html xmlns:m="http://www.seasar.org/maya">
>
> <form id="add">
> <span m:inject="h:messages" m:globalOnly="false" m:showDetail="true"/>
> <input type="text" m:value="#{addDto.arg1}"/> +
> <input type="text" m:value="#{addDto.arg2}"/> =
> <span m:value="#{addDto.result}"/>
> <input type="submit" value="calculate" m:action="#{addAction.calculate}"/>
> </form>
> ==================================================
>
>
> 詳細な仕様を把握しないままの推測で申し訳ございませんが、
> ブラウザ上で http://a.test.jp/add.html にアクセスし
> 「ソースを表示」を実行したところ
> formタグが
> =============================================
> <form id="add" name="add" method="post" action="/a/add.html"
> enctype="application/x-www-form-urlencoded">
> =============================================
> のように記述されておりましたので
> S2JSFでは自動的にform actionを自画面の
> REQUEST URIか何かを挿入してくれると
> 考えてよろしいでしょうか。
>
> またここで質問なのですが、
> この場合 actionを "/add.html" のように明示できれば
> 正しい遷移となると思うのですが、そのように
> actionを手動で設定することはできるのでしょうか。
m:passthrough="true"を属性に指定する事で
HTMLのタグがそのまま出力されます。
以下を参考に試して頂けますか?
<form name="hoge" method="post" action="/add.html" m:passthrough="true">
Seasar-user メーリングリストの案内