我有一个jsp submit-cot.jsp,点击下面的控制器,表单被成功提交,我再次被重定向到submit-cot.jsp页面。
@RequestMapping(value = "/submitform", method = RequestMethod.POST)
    public ModelAndView submitform(
            ModelAndView model,
            @ModelAttribute("cot") Cot cot,
            @ModelAttribute("platformUrl") PlatformUrlView platformUrl,
            final HttpServletRequest request)
    {
        cotService.save(cot,platformUrl);
        model.setViewName("redirect:/submit-cot");
        model.addObject("msg", resource.getMsg("A45"));
        return model;
    }问题是消息'msg‘以http://localhost:8080/submit-cot?msg=Cot+is+submitted+successfully的形式出现在url中。我需要在弹出窗口中显示消息'msg‘。
有没有人可以建议如何在弹出窗口中获取消息。提前谢谢。
发布于 2017-03-30 15:06:56
在模型对象本身中传递所需的参数。Model.addAttribute(键,值)。这将在JSP中可用。使用${keyname}检索客户端中的属性并显示它。我希望这能解决你的问题。
发布于 2017-03-30 15:58:14
由于您是从控制器执行重定向,默认的重定向机制会将属性值添加到url中,因为这是在请求-响应-请求周期中保持该值而无需维护服务器端会话的唯一方法。
你的问题的解决方案是使用Spring的flash属性特性,这个特性专门用来解决这个问题。
您可以更改控制器代码,如下所示
@RequestMapping(value = "/submitform", method = RequestMethod.POST)
public RedirectView submitform(
        ModelAndView model,
        @ModelAttribute("cot") Cot cot,
        @ModelAttribute("platformUrl") PlatformUrlView platformUrl,
        final HttpServletRequest request
        final RedirectAttributes redirAttr)
{
    cotService.save(cot,platformUrl);
    RedirectView redirectView = new RedirectView();
    redirectView.setContextRelative(true);
    redirectView.setUrl("/submit-cot");
    redirAttr.addAttribute("msg", resource.getMsg("A45"));
    return redirectView;
}在用于处理"/submit-cot“url的控制器代码中,您可以使用RequestContextUtils检索该值,并在ModelAndView中设置它以便进一步处理。下面的例子
@RequestMapping(value = "/submit-cot", method = RequestMethod.GET)
public ModelAndView submitCot(
        ModelAndView model,
        final HttpServletRequest request)
{
    model.setViewName("popup-view");
    Map<String, ?> flashMap = RequestContextUtils.getInputFlashMap(request);
    if (flashMap != null) {
        model.addAttribute("msg", msg);
    }
    return model;
}最后,在您的视图中,您可以放置用于有条件地显示弹出窗口的逻辑。
用于进一步阅读的文档链接- https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-flash-attributes
https://stackoverflow.com/questions/43110648
复制相似问题