微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何仅使用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表单使用随机标记并存储在会话中并在中间页上对其进行验证.

希望这会帮助你.

原文地址:https://www.jb51.cc/spring/531852.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐