2013-02-07 19 views
4

我有一個彈簧控制器方法接收一些可選數組作爲參數。它們不是必需的,但我希望它們不是null,但是當它們不在控制器方法接收的參數中時,它們只是空的數組。我知道,我可以檢查它們是否爲空,然後指定爲新對象,但這會生成大量樣板代碼。此外,當我試圖做這樣的事情:彈簧mvc空數組作爲默認值

@RequestMapping(headers = "Accept=application/json", method = RequestMethod.GET, value = "/socialUsers/saveFilter", produces = "application/json") 
public @ResponseBody 
void saveFilterToDataBase(@RequestParam(required = false, value = "gender", defaultValue = "{}") Gender[] genders) 

.... 

我收到的第400錯誤,當我不提供的網址,這是奇怪的參數,導致所需的字段是假的。

對此有任何想法,傢伙?

+0

可能是默認值'{}'? – TheWhiteRabbit

+0

嗯,我在Google找到了這個解決方案,但實際上它並不起作用。它甚至不在調試模式下輸入控制器方法。當我不使用這個默認值時,所以這個數組是空的,它在邏輯中引發一個異常。檢查它是否爲空不是一種方法,因爲我有6個數組作爲參數傳遞。 – user

回答

6

找到解決方案。默認的空數組值就是「」。但問題是,即使參數不是必需的,它也會引發第400個錯誤。奇怪的。正在努力。

+0

您是否找到解決方案? – denu

+0

@denu,默認的空數組值是''「',所以你寫'value =」「' – user

+0

這是一個帶空格或空字符串的字符串嗎? –