送信ボタンをクリックした後でのみページにリダイレクトする必要がありますが、アドレスバーにURLを直接入力する必要はありません。アドレスバーに直接入力した場合は、ホームページが表示されます。
Iamはsession.getAttributeを使用して上記のプロセスを実行します。すべてのpostメソッドに対してこれを行う必要があるため、これに代わるものがあるかどうかを考えています...
以下のメソッドは最初のページ用で、次のページで使用するセッション属性を作成しました。
@RequestMapping(value = "/payment", method = RequestMethod.POST)
public String submitForPayment(@ModelAttribute("deposit") Deposit deposit, ModelMap model, HttpServletRequest request) throws IOException
{
try {
HttpSession sessionForNextPage = request.getSession(true);
sessionForNextPage.setAttribute("vNumber",
deposit.getValidityNumber());
return "redirect:success";
} catch (NullPointerException exception) {
return "redirect:payment";
}
}
以下の方法は、上記で宣言されたセッションが使用される次のページ用です。
@RequestMapping(value = "/success", method = RequestMethod.GET)
public String showSuccess(ModelMap model, HttpServletRequest request)
{
try {
view = "success";
HttpSession session = request.getSession(false);
int vNumber = (int) session.getAttribute("vNumber");
System.out.println(vNumber);
if (vNumber != 0) {
request.getSession(false).removeAttribute("vNumber");
return view;
}
else
return "pay";
} catch (Exception e) {
return "redirect:pay";
}
}
私はすべてのメソッドに対してこれを行わなければならないので、これを行う他の方法はありますか...