我继承了一个 Spring MVC 应用程序。我对 .NET MVC 很熟悉,而且我认为我设计这个东西的方式非常不同,但是使用我所拥有的东西,这就是我想做的事情:
当前设计:
SearchController - 用于提交和呈现搜索结果。每个单独的搜索结果都有一个添加/编辑/删除选项,可将请求提交给不同的控制器。
@RequestMapping(valur={"/searchResult.do"}...) public ModelAndView searchResult(@ModelAttribute GlobalPojo pojo) { //here I'd like to store the pojo in session so that the search results //can be re-rendered after an Add/Edit/Delete action }
CrudController
@RequestMapping(value = { "/modifyAction.do" }, method = { org.springframework.web.bind.annotation.RequestMethod.GET }) public ModelAndView modifyRecord(@RequestParam("id") String uid) { //here I'd like to return to the results page after completing an action }
这个 GlobalPojo 到处都被用作参数和结果,所以我不能很好地使它成为一个会话范围的 bean。我想我能做的是:
- 将此添加到 SearchController:@SessionAttributes("searchPojo")
- 修改@ModelAttribute --> @ModelAttribute("searchPojo")
但是,我不确定如何从 CrudController 访问 searchPojo,因为我想在其上设置一个 message 属性以显示在搜索结果页面上。
我看到的将会话传递给控制器操作的示例不使用属性,所以我只是不确定应该是什么样子。
提前致谢。