2013-09-16 28 views
0

在春天控制器,我想要調用同樣的方法對不同的HTML - 表單提交 所以,採取的HttpServletRequest作爲RequestBody春季控制器 - 從servlet請求填寫DTO手動

@RequestMapping(value = "/Search") 
public String doSearch(HttpServletRequest httpServletRequest, ModelMap map) { 
    // Now, looking for something like this... 
    if(req.getType.equals("x") 
     //X x = SOME_SPRING_UTIL.convert(httpServletRequest,X.class) 
    else 
     // Y y = SOME_SPRING_UTIL.convert(httpServletRequest,Y.class) 
} 

我想請求參數轉換爲通過Spring轉換,因爲它轉換的同時以Bean作爲方法參數

+0

爲什麼?爲什麼不簡單地創建多個方法並區分映射。你如何確定創建哪個對象? –

+0

基於可以從請求參數 – Sidh

+0

派生的動作ID /類型我真的不清楚你正在嘗試做什麼... –

回答

0

使用@RequestMapping註釋的params屬性區分請求映射映射。

@RequestMapping(value="/search", params={"actionId=Actionx"}) 
public String searchMethod1(X search) {} 

@RequestMapping(value="/search", params={"actionId=ActionY"}) 
public String searchMethod2(Y search) {} 

這樣,你可以爲每個不同的操作方法,讓春天做所有繁重的你。

+0

這完全沒問題,但是我們可以採用通用方法,因爲我可以用通用方法處理東西 – Sidh

+0

爲什麼你想用手做所有事情?你爲什麼不簡單地使用框架?但唉,如果你必須用'@ RequestBody'註解一個String方法參數,不知道爲什麼你想要有1個大的我可以處理整個世界的方法...... –