結果を別画面(別ウィンドウ)に表示する方法について
現在、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自体が日本であまり普及していない)
ちょっと困っています。
最悪、単なる画面遷移で対応しようかとも思っていますが、お知恵があればよろしくお願い致します。
お礼
wavに変更してみたところできました! 本当にありがとうございました。 これにて質問を終了させたいと思います。