2012-11-06 50 views
5

請考慮以下要求:請求參數必須綁定到使用Spring MVC 3.0的對象。請求參數包含下劃線(例如http://myurl:80/x?param_one=1&param_two=2)。這些參數應綁定到以下對象:在Spring MVC 3.0中綁定具有下劃線的請求參數

class MyObject { 
    private Integer paramOne; 
    private Integer paramTwo; 

    ... 
} 

你會怎麼做呢?

重要提示:認爲有可能的參數和對象這樣的大量的,它不是好的做法,以確定對包括下劃線的對象setter方法。

+1

我對這個問題添加了一個答案,你可以在下面看到。你是否最終找到了比我提供的更優雅的解決方案?我自己喜歡更好的解決方案。 –

回答

1

你可以做到這一點使用@RequestMapping屬性

@RequestParam(value = "param_One") String paramOne,@RequestParam(value = "param_two") String paramTwo 

一下添加到方法簽名

但最佳實踐其更好地通過相同的變量名

+4

儘管我很欣賞這個答案,但請記住,在我提到的問題的底部:*還要考慮可能存在大量參數和像這樣的對象*。在這種情況下,'@ RequestParam'是不可行的,因爲它意味着控制器方法簽名有超過20個參數。 – tmbrggmn

2

Rajith的答案是對的控制器方法特別是,並沒有解決你最初的問題,如何將下劃線參數綁定到一個對象。

的哈克解決方案,我目前在地方來完成你實際上問的是說出我制定者在這種風格:

public void setProject_ids(List<Long> project_ids) { 

注意RequestParam不能應用到方法,它沒有當應用於此setter的參數時會產生效果。

相關問題