Javaの道 Javaに関する
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道 >  掲示板 >  掲示板(ActionFormの値が受け渡らない)
閲覧数:553
掲示板(ActionFormの値が受け渡らない)
名前
匿名
題名 ActionFormの値が受け渡らない
質問内容

質問を評価する
(0ポイント)
こんにちは。

SAStrutsでWEBアプリを作ってます。

下記のように一度Cookieにセットしたものを
POSTしています。

ローカルの開発環境では動くのですが、
サーバ(Apache+Tomcat連携)で動作すると
値が浮け渡りません。

下記のように、Alertで確認するとちゃんと値は入ってるので、UI側は正常だと思うのですが。

<form name="sendActionForm" method="post">
    <input type="hidden" name="cook" value="">
</form>
function cash() {
    document.sendActionForm.cook.value = getCookie(key_k);
alert(document.sendActionForm.cook.value);
    document.sendActionForm.action="${f:url("/cash")}";
    document.sendActionForm.submit();
}
質問日時 2013-10-04 22:11:01
名前
匿名
回答内容

回答を評価する
(0ポイント)
・method="get"だとどうか。
・request.getParameter()の値はどうか。

ところで「受け渡る」なんて言葉はないよ。
回答日時 2013-10-04 22:23:01
名前
匿名
回答内容

回答を評価する
(0ポイント)
ありがとうございます。

確かに"get"で実行すると値が取得できました。
ただ、キャッシュが効いてしまうので、postにしたいのですが、これはサーバ側の設定になるのでしょうか?
回答日時 2013-10-04 22:49:22
名前
匿名
回答内容

回答を評価する
(0ポイント)
質問者です。

もう1点気になっているのが、日本語を含む値がエンコードされてます。

Tomcat のserver.xmlでは、指定しているのですが。。
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" useBodyEncodingForURI="true" />
回答日時 2013-10-04 23:49:03
名前
匿名
回答内容

回答を評価する
(0ポイント)
>"get"で実行すると値が取得できました。
Tomcatでpost値が取得できない件について、調べてみる。

>Tomcat のserver.xmlでは、指定しているのですが。。
日本語を含む値はエンコードして送られるべきもの。
それがURLエンコード(%エンコード)で、通常UTF-8で考える。
Tomcatのライブラリはそれを内部でデコードしてくれる。
回答日時 2013-10-05 10:59:31
名前
匿名
回答内容

回答を評価する
(0ポイント)
ありがとうございます。

TomcatでPOSTできない件ですが、
AJP連携&別階層(記載忘れていましたが、これはドメインルート環境下でのみ起こる現象でした)では、バグなども見つかっているようなので、
カスタムタグ(アプリのルート、jsessionidを除去)を作成して対応しました。

ActionFormの値も正常に受け渡せるようになりました。

ただ、セッション管理がまだ不十分のようで
FireBugでjsessionidを見ると画面表示で2、3個発行されます。

Apache側の設定は以下の通りです。

何か、お気付きの点がありましたら、ご指摘いただければ幸いです。
<IfModule mod_proxy_ajp.c>
 <Location />
 ProxyPass ajp://localhost:8009/xxxx/ disablereuse=On
 ProxyPassReverse ajp://localhost:8009/xxxx/
 ProxyPassReverseCookiePath /xxxx/
 </Location>
</IfModule>

>Tomcatのライブラリはそれを内部でデコードしてくれる。

ありがとうございます。勉強になります。
回答日時 2013-10-05 13:38:49
回答内容を入力し、「確認」ボタンをクリックしてください。
ログインしていません。ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 ユーザIDをお持ちでない方は「ID登録」からユーザIDの登録を行ってください。
氏名 匿名
回答内容
 



このページのトップへ
 ニュースJava基本Servlet・JSPオープンソースFAQ掲示板
Javaの道_CopyrightJavaの道