2014-10-18 73 views
0

做这两个@Controller的方法是一回事吗?它们有什么不同? 这是一个带有表单的Spring mvc示例。第一种方法增加了一个对象模型或不??谢谢Spring Controller info

@Controller 
public class HomeController{ 

@RequestMapping(method = RequestMethod.GET) 
public Member form() { 
    return new Member(); 
} 


@RequestMapping(method = RequestMethod.GET) 
public void form() { 
model.addAttribute(new Member()); 

} 
} 

回答

1

你的代码不会编译,但如果你将其更改为例如:

@RequestMapping(method = RequestMethod.GET) 
public ModelAndView form(ModelAndView model) { 
model.addObject("member", new Member()); 
model.setViewName("view"); 
return model 

}

它会尝试返回view.html(这取决于你如何配置ViewResolver),并且会员对象将在名称“member”下提供

对于像Freemarker这样的模板库 - 因此您可以打印somethi从它到用户。

第一种方法可用于REST API的示例,因此您可以将成员返回给调用您的HomeController的任何人。

+0

这是一个示例。我想知道第一种方法是否将成员项添加到模型 – Alex 2014-10-18 18:32:50

+0

不,它只是返回它 - 例如,如果添加@ResponseBody,则以json形式。 – freakman 2014-10-18 18:35:08

+0

我在一本书中发现了第一个方法,它说“提供空格式”。这是什么意思? – Alex 2014-10-18 18:37:27