如何仅使用Spring在Java中单击提交按钮后才能转到下一页

前端之家收集整理的这篇文章主要介绍了如何仅使用Spring在Java中单击提交按钮后才能转到下一页 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

仅在单击“提交”按钮后,才需要重定向页面,但无需直接在地址栏中输入网址.如果直接在地址栏中输入,则应显示主页.

我使用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";
        }
    }

还有其他方法可以执行此操作,因为我必须对所有方法都执行此操作…

最佳答案
每当我必须执行帖子提交时,我总是使用中间页面来捕获POST数据并将数据存储在数据库中,并将记录键存储在会话中,并将其重定向显示页面,如果该页面存在,我会在其中检查记录ID然后我从数据库中检索数据并显示它,如果不显示错误消息.

因此,即使有人直接访问您的显示页面(在URL中键入)也会显示错误msg,并且在大多数情况下,人们不会看到中间页面的URL,但是即使他们这样做,您也可以为HTML表单使用随机标记并存储在会话中并在中间页上对其进行验证.

希望这会帮助你.

猜你在找的Spring相关文章