Мне нужно закодировать запятые, игнорируемые платформой Spring, но регулярные запятые обрабатываются как массив.
@RequestMapping(value = "/name/details", method = RequestMethod.GET)
@ResponseBody
public List<NameObj> getNameDetails(
@RequestParam(value = "searchLevel", required = true) Integer searchLevel,
@RequestParam(value = "searchValue", required = true) String searchValue,
@RequestParam(value = "address", required = false) String[] address)
Я отправляю URL как
/name/details?searchLevel=5&searchValue=Tom&address=5%20Tomberry%20Way%2CState
Где% 2C - закодированная запятая. Мне нужно это, чтобы понять, что некоторые люди могут иметь несколько адресов, разделенных запятыми, и разделить их на массив, но каждый раз, когда приходит закодированная запятая, чтобы рассматривать ее как обычную строку, например, для EX:
/name/details?searchLevel=5&searchValue=Tom&address=5%20Tomberry%20Way%2CState,10%20Blimey%20Way%2CState
Будет рассматриваться как массив адресов.
Единственное решение, которое я нашел для этого, - полностью изменить способ интерпретации запятыми Spring и использовать ';' вместо. Проблема в том, что это часть гораздо большего веб-приложения, которое уже использует запятую в разных частях приложения.
Любая помощь будет принята с благодарностью!