Эта проблема кажется тривиальной, но я не могу заставить ее работать должным образом. Я вызываю отображение контроллера Spring с помощью jquery ajax. Значение someAttr всегда является пустой строкой независимо от значения в URL-адресе. Пожалуйста, помогите мне определить почему.
-URL называется
http://localhost:8080/sitename/controllerLevelMapping/1?someAttr=6
-Контроллер сопоставления
@RequestMapping(value={"/{someID}"}, method=RequestMethod.GET)
public @ResponseBody int getAttr(@PathVariable(value="someID") final String id,
@ModelAttribute(value="someAttr") String someAttr) {
//I hit some code here but the value for the ModelAttribute 'someAttr' is empty string. The value for id is correctly set to "1".
}
spring-mvc
кодировщик
источник
источник
@RequestParam
, вот она: docs.spring.io/spring/docs/current/javadoc-api/org/…У вас есть много вариантов использования
@RequestParam
с дополнительными необязательными элементами, например@RequestParam(required = false, defaultValue = "someValue", value="someAttr") String someAttr
Если не поставить
required = false
- по умолчанию будет требоваться параметр.defaultValue = "someValue"
- значение по умолчанию для использования в качестве запасного варианта, когда параметр запроса не указан или имеет пустое значение.Если параметры запроса и метода совпадают - вам не нужно
value = "someAttr"
источник