- PR -

struts アドレスバーに表示されるAction名について

1
投稿者投稿内容
EIS
会議室デビュー日: 2003/11/23
投稿数: 6
投稿日時: 2003-11-23 01:47
はじめまして EIS と申します。
struts の ActionからActionを呼び出した際にアドレスバーに表示されるdoURLについて教えてください。

環境は次の通り
struts 1.1
tomcat 1.4.24
Java2 SDK 1.4.1_02

----- struts-config.xml -----
<!-- 配列の要素を解析するAction --->
<action path="/xxx" type="eis.action.xxxAction">
<forward name="image" path="/pages/upload.jsp"/>
<forward name="success" path="/list.jsp"/>
</action>

<!-- 画像ファイルをアップロードするAction --->
<action path="/upload" type="eis.action.uploadAction"
name="uploadForm" scope="request" validate="true"
input="/pages/upload.jsp">
<forward name="success" path="/xxx.do"/>
</action>

<!-- 詳細情報を表示するAction --->
<action path="/detail" type="eis.action.detailAction">
<forward name="success" path="/pages/detail.jsp"/>
</action>
---------------------------------------------

処理概要

  1. xxxActionで配列に格納された情報を解析
  2. 情報中に画像に関する情報があれば upload.jsp -> uploadAction を呼び出しファイルをアップロード
  3. 2.のアップロード処理が完了したら再び xxxAction をコールし、引き続き配列に格納された情報を解析する
  4. 解析処理完了後にlist.jspを呼び出し情報の一覧を表示
  5. list.jsp中で情報をクリックしたらdetailActionを呼び出し詳細情報を取得。detail.jspに詳細情報を表示する


流れ的には
xxxAction -> uploadAction -> xxxAction -> list.jsp -> detailAction -> detail.jsp
となります。

detail.jspが表示されている状態でブラウザの戻るボタンを押下すると
ブラウザのアドレスバーに http://hogehoge/test/upload.do が表示されてしまいます。
http://hogehoge/test/xxxAction.do が表示されるべきと考えていますが、当方の設定に何か問題があるのでしょうか。

このあたりの詳細をご存知の方、ご教授願います。
宜しくお願いします。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2003-11-23 22:00
>detail.jspが表示されている状態でブラウザの戻るボタンを押下すると
>ブラウザのアドレスバーに http://hogehoge/test/upload.do が表示されてしまいます。
>http://hogehoge/test/xxxAction.do が表示されるべきと考えていますが、当方の設定に何か問題があるのでしょうか。

内部的に Action を呼び出していてもブラウザからすればしったことではないので upload.do が表示されます。
xxxAction を URL に残したい場合はリダイレクトさせる必要があります。Struts では特別なコーディングは必要なく redirect という属性で設定できますよ。
<forward name="success" redirect="true" path="/xxx.do"/>
EIS
会議室デビュー日: 2003/11/23
投稿数: 6
投稿日時: 2003-11-24 01:01
インギさんありがとうございます。
おかげさまで目的のdoURLを表示させることができました。
1

スキルアップ/キャリアアップ(JOB@IT)