2013-07-29 71 views
2

我是Spring 3.1.0的新手,嘗試創建一個應用程序,該應用程序可以作爲Web應用程序以及Web服務公開。 對於使用@ModelAttribute提交表單對象的POST。我也想通過任何海報公開這種可以消耗與XML相同的對象的方法。Spring 3.1.0 mvc綁定modelattribute和requestbody

我應該使用兩個@ModelAttribute & @RequestBody在一起。我已經在@RequestMapping註釋中添加了消耗屬性。

回答

1

當您提交表單時,數據以表單編碼的方式發送,而當您使用XML/JSON時,它以字符串形式出現在主體中。你最好把所有的通用邏輯放到中間服務層,並在你的控制器中調用它。因此,它可以讓你簡單地在現有的HTML頁面上構建REST服務與形式:

public class Service { 
    public void registerUser(User user){ 
    } 
} 

@RequestMapping("users") 
public class FormController{ 
    @Autowired private Service service; 

    @RequestMapping("register") 
    public ModelAndView registerUser(@ModelAttribute User user){ 
     service.registerUser(user); 
    } 
} 

@RequestMapping("service/v1") 
public class RESTController{ 
    @Autowired private Service service; 

    @RequestMapping("users/register") 
    public ModelAndView registerUser(@RequestBody User user){ 
     service.registerUser(user); 
    } 
} 

事實上,你甚至可以把它放進一個控制器。

+0

嘿謝謝,但我已經想過這個,但是這會像再次創建一個類似的方法,這實際上打敗了整個討論的目的。我不太確定單獨的方法是否是唯一的出路。 。 – vaibhav

相關問題