【问题标题】:Blocking the addObject message of spring ModelAndView object in the jsp on clicking the back button在单击后退按钮时阻止jsp中spring ModelAndView对象的addObject消息
【发布时间】:2015-04-27 02:45:43
【问题描述】:

我在我的 spring 控制器中添加到 ModelAndView 对象的 jsp 页面中显示成功消息。我成功地做到了。但是,即使我转到其他链接并单击后退按钮,也会显示该消息。我只是想知道如何仅在相关而不是单击后退按钮时才显示此消息。我在jsp中使用如下代码显示:

<c:if test="${param.successmsg != null}">
    <c:out value="${param.successmsg}"></c:out>
</c:if> 

而我在控制器中添加对象的方式是:

ModelAndView delmav = new ModelAndView(new RedirectView("view.htm"));
String sucmsg="Deleted successfully";
delmav.addObject("successmsg", sucmsg);
return delmav;

【问题讨论】:

    标签: java jsp spring-mvc jakarta-ee controller


    【解决方案1】:

    假设您使用的是相同的控制器方法,那么您可以检查 delmav 是否已经包含“successmsg”,如果包含,则删除它并且不显示它 -

    ModelAndView delmav = new ModelAndView(new RedirectView("view.htm"));
    ModelMap delModelMap = delmav.getModelMap();
    if ( delModelMap.containsAttribute("successmsg") ) {
       // remove from scope
       Map<String,Object> delModel = delmav.getModel();
       delModel.remove("successmsg");
    } else {
       String sucmsg="Deleted successfully";
       delmav.addObject("successmsg", sucmsg);
    }
    return delmav;
    

    另一个选项是 FlashMaps - 这些是用于重定向的临时消息 -

    public String addMyObject(@ModelAttribute("myObject") MyObject myObject, RedirectAttributes redirectAttributes) {
    
        redirectAttributes.addFlashAttribute("successmsg", "Successfully added..");
    
        return "redirect:mydirect";
    
    }
    

    myredirect.jsp -

    Access Message - ${successmsg}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-30
      • 1970-01-01
      • 2011-10-15
      • 1970-01-01
      相关资源
      最近更新 更多