- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
什么是最优雅/最有效的方式,如何在 Spring MVC 3.2 中处理 Controller 之间的模型。为了重定向到另一个 Controller ,我使用 forward 方法,因此不需要新的请求实例,模型数据应该可以访问(如果我没记错的话)。有什么方法可以捕获在第一个 Controller 中添加的模型吗?
(我知道 RedirectAttributes,但可能是更好/更简单的方法)
例子:
@Controller
public class WebpageController{
@RequestMapping( value = { "/{code}" } )
public String handleFirstLevel(@PathVariable String code, ModelMap modelMap) throws PageNotFoundEception{
final Webpage webpage = getWebpage(code);
modelMap.put(WEBPAGE_MODEL_KEY, prepareModel(webpage));
return "forward:some-url";
}
private Map<String, Object> prepareModel(Webpage webpage){
Map<String, Object> model = new HashMap<String, Object>();
model.put("webpage", webpage);
return model;
}
// some other code
}
@Controller
public class SpecialWebpageController{
@RequestMapping( value = { "/some-url" } )
public String handleFirstLevel(@PathVariable String code, ModelMap modelMap) throws PageNotFoundEception{
// need access to previously appended model to add some other data
return "specialViewName";
}
}
谢谢
最佳答案
当您有一个仅返回 String
的处理程序方法时,该 String
被视为 View 名称。使用 forward
前缀,Spring 将获取指定路径的 RequestDispatcher
并转发给它。该过程的一部分将包括从为该请求处理周期创建的 ModelAndView
中获取 Model
,并将其所有属性放入 HttpServletRequest
属性中。
Servlet 容器将采用 RequestDispatcher#forward(..)
并再次使用您的 DispatcherServlet
来处理它。您的 DispatcherServlet
将为此处理周期创建一个带有新 Model
的新 ModelAndView
。因此,此 Model
不包含之前的任何属性,但 HttpServletRequest
属性包含。
在你的情况下,这个
modelMap.put(WEBPAGE_MODEL_KEY, prepareModel(webpage));
最终会在
HttpServletRequest request = ...;
request.getAttribute(WEBPAGE_MODEL_KEY);
关于java - 如何在 Spring MVC 中使用转发处理 Controller 之间的 ModelMap 的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22972762/
Spring ,有什么区别 modelMap.put("key",value); 和 modelMap.addAttribute("Key",value); 最佳答案 addAttributes 意味
我正在尝试通过 tutorialspoint 运行 spring mvc helloworld 示例但我没有在 jsp 页面中获取模型图数据。我已在 web-inf/lib 文件夹中添加了所有必需的
我有一个代码: public class testCustomer { private ModelMap customer; } 以及上述类的 getter/setter。 我有两种方
我正在向 ModelMap 添加一个 Map,其中包含一个下拉列表,我在表单初始化时填充 ModelAttribute: @RequestMapping(method = RequestMethod.
我打算使用 spring ModelMap。并且还喜欢明确指定 View 名称。你认为这是个好主意吗?这样我就可以使用 Controller 了? 如何使用 ModelMap 指定 View 名称?如
如果我向 ModelMap 添加属性: model.addAttribute("abc", 123); 并显示 View : @RequestMapping(value = "/foo", m
以下Spring Framework之间的主要区别是什么?上课? 模型 模型映射 ModelAndView 使用 Model.put(String,Object) 我们可以访问 .jsp 文件中的值,
我的 JSP 页面:
此方法在点击链接时打开一个页面,其中我想要message属性的值,我没有添加servlet和jsp,如何显示它?我的 html 是空的 @GetMapping("/activate/{code}")
我试图让我的 JSP 文件使用我的 servlet 传递的 ModelMap,但得到一个空字符串。已经尝试调试了一段时间,但尚未取得任何进展。有人知道这个问题吗?我正在使用最新的 Spring Web
为了更好地理解,这是一个示例 Spring Controller 代码: @Controller public class SampleController { protected Str
如何从jsp 中的ModelMap 访问对象,以便调用方法?目前我收到此错误: Syntax error on token "$", delete this token JSP
这个问题在这里已经有了答案: What are the differences between Model, ModelMap, and ModelAndView? (3 个回答) 关闭3年前。 Mo
我是 ftl(FreeMarker 模板)新手。我使用像这样的模型映射从 Controller 发送对象列表 我的 Controller 代码 @RequestMapping(value="/xxx"
public String addStudent( @ModelAttribute("HelloWeb")Student student, ModelMap model){ } 有人可以解释一下这是如
我在将 ModelMap 属性传递给 tsp 页面时遇到问题。 Intelij IDEA 可以很好地识别传递的变量,但是当我在 tomcat 上部署应用程序并加载实际页面时,我只能看到变量名,而不是变
我的应用程序出现问题。我正在使用 SpringMVC、Maven、Hibernate。我只是尝试在 jsp View 中打印一些数据。 我的 web.xml 文件: app
以下 Spring Framework 之间的主要区别是什么类(class)? 型号 模型映射 ModelAndView 使用Model.put(String,Object)我们可以访问.jsp文件中
我正在比较ModelMap和 Model来自Spring MVC。除了第一个是类而第二个是接口(interface)的明显区别之外,是否有任何区别使得在不同情况下使用一个或另一个更可取? 它们主要用于
我有一个带有以下代码的 Spring Controller : @RequestMapping(value="/getMessage.htm", method=RequestMethod.POST)
我是一名优秀的程序员,十分优秀!