2014-10-18 38 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