@ModelAttribute возвращает неправильное значение - PullRequest
0 голосов
/ 20 ноября 2018

Я отправляю значение, используя форму:

<form action="user-fonts" method="post" ">
<select name="nameFont">
<#list fonts as font>
<option value=${font.id}>${font.nameFont}</option>
</#list>
</select>
    <input type="hidden" name="_csrf" value="${_csrf.token}" />
    <div><input type="submit" value="Go"/></div>
</form>

Контроллер:

 @GetMapping
    public String main(@AuthenticationPrincipal User user, Model model)
    {
       Set<DBFont> fonts = user.getFont();
        model.addAttribute("fonts", fonts);
        return "Myfonts";
    }

Вот значения в GetMapping:

enter image description here

    @PostMapping
    public String mainPost(@ModelAttribute DBFont DBfont)
    {

         return "redirect:/user-fonts";
    }

Почему namefont получает значение id?И Id = ноль?Можно ли отправить все значения класса? nameFont и ID?

enter image description here

Почему я получаю нулевое значение везде, кроме id?

1 Ответ

0 голосов
/ 20 ноября 2018

Убедитесь, что вы не блокируете какой-либо атрибут в WebDataBinder.

@InitBinder
void initBinder(final WebDataBinder binder) {
    binder.setAllowedFields("name", ...);
}

Этот метод устанавливает ограничение для полей, разрешенных для привязки.И все остальные поля являются несвязанными, что, естественно, приводит к значениям null.

Другая возможная причина: неправильные установщики в Бине, аннотированные @ModelAttribute.Например, Object setName(String name) вместо void setName(String).

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