首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在弹出窗口中显示jsp页面中的ModelAndView模型值

如何在弹出窗口中显示jsp页面中的ModelAndView模型值
EN

Stack Overflow用户
提问于 2017-03-30 14:56:44
回答 2查看 676关注 0票数 0

我有一个jsp submit-cot.jsp,点击下面的控制器,表单被成功提交,我再次被重定向到submit-cot.jsp页面。

代码语言:javascript
运行
复制
@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‘。

有没有人可以建议如何在弹出窗口中获取消息。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2017-03-30 15:06:56

在模型对象本身中传递所需的参数。Model.addAttribute(键,值)。这将在JSP中可用。使用${keyname}检索客户端中的属性并显示它。我希望这能解决你的问题。

票数 0
EN

Stack Overflow用户

发布于 2017-03-30 15:58:14

由于您是从控制器执行重定向,默认的重定向机制会将属性值添加到url中,因为这是在请求-响应-请求周期中保持该值而无需维护服务器端会话的唯一方法。

你的问题的解决方案是使用Spring的flash属性特性,这个特性专门用来解决这个问题。

您可以更改控制器代码,如下所示

代码语言:javascript
运行
复制
@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中设置它以便进一步处理。下面的例子

代码语言:javascript
运行
复制
@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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43110648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档