[Seasar-user:3392] form actionの遷移先指定について
takada takeshi
[E-MAIL ADDRESS DELETED]
2006年 3月 18日 (土) 14:26:00 JST
みなさま はじめまして。
つい先週より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を手動で設定することはできるのでしょうか。
test/WEB-INF/faces-config.xml では以下のように
設定しておりますが、<to-view-id>を
<to-view-id>add.html</to-view-id>
としてみても状況は同じでした。
==============================================
<navigation-rule>
<navigation-case>
<from-outcome>add</from-outcome>
<to-view-id>/a/add.html</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
==============================================
長々とした説明で失礼いたしましたが、
どうぞご教授いただければ幸いです。
# 先日、MLの主旨を勘違いして同内容での質問を
# mayaa-user MLに送らせていただきました。
# 両方を購読されている方がいらっしゃいましたら、
# 重複した内容での投稿お詫びいたします。
高田武 takada takeshi
[E-MAIL ADDRESS DELETED]
_________________________________________________________________
パソコンでも携帯電話でも使える 「MSN Hotmail」
http://promotion.msn.co.jp/hotmail/
Seasar-user メーリングリストの案内