我已經在這裏閱讀https://stackoverflow.com/a/9768635/258483 Spring MVC將使用單個名稱參數的多個值填充數組。如何知道@RequestParam如何處理數組?
但是,我怎麼會知道這個沒有實驗或沒有問過呢?
Javadoc about @RequestParam非常差,不包含數組。
該主題的完整和可靠的信息來源是什麼?
我已經在這裏閱讀https://stackoverflow.com/a/9768635/258483 Spring MVC將使用單個名稱參數的多個值填充數組。如何知道@RequestParam如何處理數組?
但是,我怎麼會知道這個沒有實驗或沒有問過呢?
Javadoc about @RequestParam非常差,不包含數組。
該主題的完整和可靠的信息來源是什麼?
RequestParamMethodArgumentResolver解決用@RequestParam
註解的方法參數,其擴展了AbstractNamedValueMethodArgumentResolver。 AbstractNamedValueMethodArgumentResolver
創建一個WebDataBinder
,如果它與方法參數類型不匹配,則將類型轉換應用於已解析的參數值。讓我們來看看resolveArguemnt
方法的一些部分:
try {
arg = binder.convertIfNecessary(arg, paramType, parameter);
}
catch (ConversionNotSupportedException ex) {
throw new MethodArgumentConversionNotSupportedException(arg, ex.getRequiredType(),
namedValueInfo.name, parameter, ex.getCause());
}
catch (TypeMismatchException ex) {
throw new MethodArgumentTypeMismatchException(arg, ex.getRequiredType(),
namedValueInfo.name, parameter, ex.getCause());
對於RequestParam
,binder.convertIfNecessary
使用多達116不同Converter
s至可能從傳遞String
轉換爲所需PARAM,例如List
。一些可能的轉換是:
我想調試resolveArgument
方法的唯一途徑。