4

在 Spring2.5 中我们编写控制器如下:

@Controller
public class HelloWorldController{

 @RequestMapping(value="/welcome",method = RequestMethod.GET)
protected ModelAndView handleRequestInternal(HttpServletRequest request,
    HttpServletResponse response) throws Exception {

    ModelAndView model = new ModelAndView("hello");
    model.addObject("msg", "hello world");

    return model;
}

}

在春季 3.1 中:

@RequestMapping(value="/welcome",method = RequestMethod.GET)
public String printWelcomeString(ModelMap model) {

    model.addAttribute("message", "hello world);
    return "hello";

}

printwelcomeString() 函数返回一个字符串而不是 ModelAndView。

任何人都可以解释一下吗?它将如何运作?hello.jsp 如何让模型显示?谢谢 :)

4

1 回答 1

3

Spring 3.5 还没有发布我希望你的意思是 Spring 3.1。

return ModelAndView是一种老式的代码编写方式,在 Spring 2.0 中使用。在 spring 3.0 添加之后,您可以同时返回 ModelAndView 或 nameView 。

我建议你总是返回 String (view Name),因为 Spring MVC 的一些高级特性将无法正常工作:

示例: Spring MVC 3.1 RedirectAttributes 不起作用

于 2012-04-26T06:42:07.353 回答