Почему параметры String всегда имеют значение null в Spring Boot 1.5 @Controller? - PullRequest
0 голосов
/ 25 июня 2019

Я перенес приложение Spring 4.1 (под управлением I JBoss) в SpringBoot 1.5 (Spring 4.3.7), и после этого все наши контроллеры MVC с параметрами String всегда получают нулевые значения при вызове.

Единственное единственноеЧтобы получить набор значений параметров, нужно было заменить String на StringBuilder.

Пример, который больше не работает:

@RequestMapping(value = "/updateTime", method = RequestMethod.POST)
public String updateTime(@RequestParam(value="time") String time) {
  // time is null in SpringBoot
}

Working (StringBuffer вместо String:

@RequestMapping(value = "/updateTime", method = RequestMethod.POST)
public String updateTime(@RequestParam(value="time") StringBuffer time) {
  // time has expected value
}

HTML:

<form name="updateTime" action="updateTime.html" method="post">
    Time: <input type="text" name="time" placeholder="YYYY-MM-DD HH:mm" value="${time}"/> <br/>
    <input type="submit" name="action" value="   Update   "/>
</form>

Даже когда параметры String в контроллере объединены в объект запроса, я получаю такое поведение.

Я что-то здесь не так делаю?

1 Ответ

2 голосов
/ 25 июня 2019

INFO : Spring работает с атрибутами имени HTML.Вы должны иметь то же имя и значение RequestParam.Примечание: в действии HTML-формы лучше иметь то же значение, что и в RequestMapping.Попробуйте это:

<form name="updateTime" action="/updateTime" method="post">
    Time: <input type="text" name="time" placeholder="YYYY-MM-DD HH:mm" value="${time}"/> <br/>
    <input type="submit" name="action" value="   Update   "/>
</form>

@RequestMapping(value = "/updateTime", method = RequestMethod.POST)
public String updateTime(@RequestParam(value="time") String time) {
  // time is null in SpringBoot
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...