如何在不使用会话的情况下在spring mvc中的@RequestMapping方法中共享模型对象?

时间:2016-05-10 09:57:17

标签: spring-mvc model-view-controller

我使用Spring创建和下载Excel工作表我想在requesttiong映射方法中在模型中添加一些变量,以便我可以在其他请求maping方法中使用

@RequestMapping("/contentUploadDetails/{content_type}/{date}")
public ModelAndView contentUpload(
        @PathVariable(value = "content_type") String content_type,
        @PathVariable(value = "date") String date) {
  List<CountAndValue> ls = contentCountImp
            .getuploadedContentCountDatewise(content_type, date);
    model.addObject("CountAndValue", ls);
    return model;
}

如上所述

 model.addObject("CountAndValue", ls);

我想在我的其他requestMapping方法中使用此模型值

@RequestMapping(value = "/ContentUploadExport", method = RequestMethod.GET)
public ModelAndView getExcel() {

    return new ModelAndView("CountAndValueExcel", "CountAndValue", CountAndValue);
}

如何在第二种方法中使用会话时使用第一种方法设置的CountAndValueExcel模型对象?我可以将模型对象(包含类对象列表)从视图发送回控制器吗?

1 个答案:

答案 0 :(得分:0)

您可以将对象保存到会话中:

@RequestMapping("/contentUploadDetails/{content_type}/{date}")
public ModelAndView contentUpload(HttpServletRequest request,
        @PathVariable(value = "content_type") String content_type,
        @PathVariable(value = "date") String date) {
  List<CountAndValue> ls = contentCountImp
            .getuploadedContentCountDatewise(content_type, date);
    model.addObject("CountAndValue", ls);
    request.getSesion().setAttribute("CountAndValue", ls);
    return model;
}

然后你就像这样检索它:

@RequestMapping(value = "/ContentUploadExport", method = RequestMethod.GET)
public ModelAndView getExcel(HttpServletRequest request) {
    List<CountAndValue> CountAndValue = (List<CountAndValue>) request.getSession().getAttribute("CountAndValue");
    return new ModelAndView("CountAndValueExcel", "CountAndValue", CountAndValue);
}

从头上写下来,没有经过测试。