Я запускаю приложение Spring boot MVC, когда я передаю «status» в качестве одного из параметров http (http://localhost:8080/greeting?status=Soemthing), он просто не работает со следующей ошибкой.
Ошибка поля в объекте 'modelAndView' в поле 'status': отклоненное значение [Soemthing]; коды [typeMismatch.modelAndView.status, typeMismatch.status, typeMismatch.org.springframework.http.HttpStatus, typeMismatch]; аргументы [org.springframework.context.support.DefaultMessageSourceResolvable: коды [modelAndView.status, status]; аргументы []; сообщение по умолчанию [статус]]; сообщение по умолчанию [Не удалось преобразовать значение свойства типа [java.lang.String] в требуемый тип [org.springframework.http.HttpStatus] для свойства 'status'; вложенное исключение - org.springframework.core.convert.ConversionFailedException: не удалось преобразовать из типа [java.lang.String] в тип [org.springframework.http.HttpStatus] для значения 'Soemthing'; вложенное исключение - java.lang.IllegalArgumentException: нет константы перечисления org.springframework.http.HttpStatus.Soemthing]
Как его воспроизвести Загрузите официальный демонстрационный проект mvc Spring отсюда https://github.com/spring-guides/gs-serving-web-content
Измените контроллер Greetign следующим образом
@RequestMapping("/greeting")
public ModelAndView greeting(@RequestParam(value="name", required=false, defaultValue="World") String name, Model model, ModelAndView mv) {
model.addAttribute("name", name);
mv.setViewName("greeting");
return mv;
}
Я только что добавил новый параметр ModelAndView, а также изменил тип возвращаемого значения на ModelAndview вместо String.
Запустите проект и нажмите URL-адрес http://localhost:8080/greeting?status=Soemthing, это не работает.
Потратили много времени на его отладку, ничего не могу найти.
Полная трассировка стека здесь
Не передавайте «статус» в качестве параметра. Поскольку "status" является ключевым словом по умолчанию для org.springframework.http.HttpStatus. Измените его имя на «status_value» или другое имя. Это будет работать