※ ChatGPTを利用し、要約された質問です(原文:結果を別画面(別ウィンドウ)に表示する方法について)
別ウィンドウで結果を表示する方法について
このQ&Aのポイント
現在、springフレームワーク3.0を利用していますが、submit処理をコントローラーで処理した後、結果を別ウィンドウで表示する方法について悩んでいます。
同じフォームオブジェクトを押されたボタンによってそれぞれ別のアクションに渡し、saveの時は画面遷移を、previewの時は別ウィンドウに遷移させたいと思っています。
プレゼン層側のjavascriptでwindow.open()を実施後に呼び出すしか方法はないのでしょうか?それともspringフレームワークで簡単に実装できる方法等ありますでしょうか?
結果を別画面(別ウィンドウ)に表示する方法について
現在、springフレームワーク3.0を利用していますが、submit処理をコントローラーで処理した後、結果を別ウィンドウで表示する方法について悩んでいます。
HTML(JSP)
<form:form modelAttribute="hogeform" id="hogeid" method="POST">
<form:textarea path="hogeText" />
<button type="button" onclick="save()">保存</button>
<button type="button" onclick="preview()">プレビュー</button>
</form:form>
<script type="text/javascript">
function save(){
document.forms["hogeid"].action="./save";
document.forms["hogeid"].submit();
}
function preview(){
document.forms["hogeid"].action="./preview";
document.forms["hogeid"].submit();
}
</script>
Controller.java
@RequestMapping(value="/save", method=RequestMethod.POST)
public String hogeSave(@ModelAttribute("hogeform") HogeForm param, BidingResult result, HttpServletRequest request, HttpServletResponse response, Model model){
~ビジネスロジック~
model.addAttribute("hogeform", param);
return "saveok"; //←saveok.jspは同一ウィンドウ遷移
}
@RequestMapping(value="/preview", method=RequestMethod.POST)
public String hogePreview(@ModelAttribute("hogeform") HogeForm param, BidingResult result, HttpServletRequest request, HttpServletResponse response, Model model){
~ビジネスロジック~
model.addAttribute("hogeform", param);
return "preview"; //←preview.jspを別ウィンドウで表示したい
}
上記のように同じフォームオブジェクトを押されたボタンによってそれぞれ別のアクションに渡しているのですが、
saveの時は画面遷移、previewの時は別ウィンドウに遷移させたいと思っています。
previewは保存結果呼び出し時の画面と同じjspを再利用する事で、リソースの節約が出来る事と、
入力途中の状態を維持するので、別ウインドウ表示の方が一般的かなと思っています。
プレゼン層側のjavascriptでwindow.open()を実施後に呼び出すしか方法はないのでしょうか?
それともspringフレームワークで簡単に実装できる方法等ありますでしょうか?
色々と探してみましたが、あまり情報が少なく(spring自体が日本であまり普及していない)
ちょっと困っています。
最悪、単なる画面遷移で対応しようかとも思っていますが、お知恵があればよろしくお願い致します。
お礼
なるほど、とてもありがたいお言葉です。 そうですね、結局は「楽にできないか?」みたいなもので、根拠も計画も無く勧められるのは問題でした。 リソースにとらわれずにPL層のでPOST呼び出しを工夫して対応したいと思います。 ありがとうございました。