- - PR -
strutsを使用したアプリで表示されるURL欄について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-03-31 15:29
初めて投稿します。
現在struts1.2を利用して開発をしていますが、URLの欄に表示される値を一定の値にしたいのですが、やり方を知っている方がいましたら教えてください。 たとえば、 AAアクションが呼ばれた後に、BBアクションが呼ばれるとします。 すると、URL欄が「〜/xxx/AA.do」⇒「〜/xxx/BB.do」と変わってしまいます。 希望としては、BBアクションが呼ばれたあとも「〜/xxx/AA.do」と表示されてほしいのです。 わかりにくい文章ですが、どうか宜しくお願いします。 |
|
投稿日時: 2006-03-31 16:14
リダイレクトをすればOkです。
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletResponse.html#sendRedirect(java.lang.String) |
|
投稿日時: 2006-03-31 17:01
インギさん、ありがとうございます。
>リダイレクトをすればOkです。 >http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/http/HttpServletRe>sponse.html#sendRedirect(java.lang.String) sendRedirectを使用して「/AA.do」と記述すると、「/BB.do」のアクションを 実行してくれず、再度「/AA.do」が実行されてしまうので、このやり方ではダメでした。 希望としては、ユーザ側にURL欄でどんなアクションが動いているのか等を知られたくないのです。 (ログイン時に「〜/Login.do」が呼ばれたとしたら、その後はどのアクションが呼ばれてもURL欄には「〜/Login.do」と出力させたい) |
|
投稿日時: 2006-03-31 17:23
フレームでやれば簡単に出来ると思いますが...
|
|
投稿日時: 2006-03-31 18:15
リクエストにどのアクションを呼びだすかという情報が含まれていないと、どのアクションを呼びだすか判断することはできません。
単にURL欄にさえ表示されなければ良いのであれば「未記入」さんの仰るとおりフレームを使うのがシンプルでよいですね。 forward先をセッションに格納して毎回 forward.do みたいなアクションへリダイレクトするのはいかがでしょうか? リダイレクトされる前はどうしても /BB.do が呼びだされますので根本的な解決にはなりませんが。 あとは AJAX で画面遷移しないアプリケーションを作るとか? プロキシサーバのログなりパケットキャプチャなりすればどんな URL を呼びだしているかわかりますが、カジュアルな解析はある程度予防できるかと。 |
|
投稿日時: 2006-04-01 22:02
Strutsでしたら,struts-config.xmlでリダイレクトの設定をすれば
URLを変えずにActionが呼べた気がします。 <forward>タグのcontextRelative属性か,redirect属性の設定で。 詳しく調べてませんが,ご参考までに。 |
|
投稿日時: 2006-04-03 13:53
返信が遅くなってしまい、すいませんでした。
未記入さん、インギさん、ハイネマンさん、返答ありがとうございました。 -------------------------------------------------------- フレームでやれば簡単に出来ると思いますが... -------------------------------------------------------- これはreturnをFrameにするということでしょうか? もしそうなら、現在は画面によってreturnをFrameであったり、Body部分であったりと分けているので、難しいかもしれません。 ------------------------------------------------------------------------------ forward先をセッションに格納して毎回 forward.do みたいなアクションへリダイレクトするのはいかがでしょうか? ------------------------------------------------------------------------------ これはURLの表示という点ではうまくいきました。 ただ、各アクションの動作に問題がないか調査する必要があるので、今のところ保留とさせていただきます。 --------------------------------------------------------------------- Strutsでしたら,struts-config.xmlでリダイレクトの設定をすれば URLを変えずにActionが呼べた気がします。 <forward>タグのcontextRelative属性か,redirect属性の設定で。 --------------------------------------------------------------------- まだ試してませんが、やってみたいと思います。 以上、ありがとうございました。 |
|
投稿日時: 2006-07-04 13:17
3ヵ月越しで返答するのもどうかと思いましたが、
Struts-config.xmlのリダイレクト設定方法を載せておきます。 <action attribute="xxx" input="xxx" name="xxx" path="xxx" type="xxxxx"> <forward name="success" path="yyy.do" redirect="true" /> <forward name="error" path="error.jsp" /> </action> forwardタグにredirect="true"と設定することにより、上記の例でいうと yyy.doがリダイレクトされ、ブラウザのアドレス欄に表示されます。 逆にredirect="false"にするとxxx.doが表示されます。 基本的に何も書かなければredirect="false"なので、すでにstruts-config.xmlに redirect="true"が設定されているのではないでしょうか? |
1