在Spring控制器中,有没有办法在不使用@ModelAttribute

时间:2018-02-05 03:37:01

标签: spring freemarker

我正常将我的MVC视图解析器设置为Freemarker。但我想在我的模型中添加一堆对象。

现在我知道我可以这样做:

@RequestMapping(value = "/add", method = RequestMethod.POST)
public String add(@ModelAttribute("user") User user) {

这将映射参数并创建一个添加到模板标记的User对象。我知道我可以这样做:

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

我可以在哪里添加我想要的一切。但我的问题是我必须这样做吗?

我想知道是否有办法做这样的事情:

@RequestMapping(value = "/index", method = RequestMethod.GET)
public String index(HttpServletRequest req) {
  MyContext myContext = new MyContext();
  myContext.addStuff(stuff);
  ....  add more stuff
  MagicViewObject.addModel(myContext);
  return "freemarkerTemplate"
}

然后可以访问freemarker模板中的myContext对象。现在我知道我可以用@ModelAttribute(" model")ModelMap模型做到这一点,但我的问题是:还有另一种方法可以做到这一点。我不喜欢方法签名中的注释。我很奇怪。

1 个答案:

答案 0 :(得分:1)

返回org.springframework.web.servlet.ModelAndView个对象。