BindingResult ни простого целевого объекта для имени компонента ‘fileName’, доступного в качестве атрибута запроса » при попытке обновить raw в моей БД,

#jpa #controller #thymeleaf

#jpa #контроллер #thymeleaf

Вопрос:

Я получаю это исключение при попытке обновить строку в моей базе данных. Я провел много исследований в Google, все, что я нахожу, это то, что я должен добавить @ModelAttribute, который уже выполнен.

Я также обнаружил, что мне нужно добавить результат привязки после @ModelAttribute, но это также не сработало, поэтому я удалил его. Я использую JPA для сохранения, чтобы манипулировать своими данными, весенней загрузкой и thymeleaf для моих представлений.

  1. Это мои контроллеры для обновления и отображения представлений

         @GetMapping("/edit/{id}")
       public ModelAndView UpdateList(@PathVariable(name="id") String id) {
     ModelAndView mav = new ModelAndView("updateList");
     com.pfe.ClientRest.model.Files files = fileServ.get(id);
     mav.addObject("Files", files);
     return mav ;
     }    
     @PostMapping("/Save")
     public String saveRepport(@ModelAttribute("Files") com.pfe.ClientRest.model.Files dbfile) {
    
     fileServ.save(dbfile);
    
    
    
     return "/redirect:/ListFile";
     }
      
  2. это мой класс сущности, у меня есть установщики и конструкторы getter

     @Table( name="Files")
    @Entity
    public class Files {
    @GeneratedValue(generator = "uuid")
    @GenericGenerator(name = "uuid", strategy = "uuid2")
    @Id
    private String id;
    private String FileName;
    private String Verif;
    public String getId() {
    return id;
    }
      

это мой шаблон.

      <div class="container">
     <h1> Modifier les informations du Rapports</h1>
     <form action="#" th:action="@{/Save}" th:objects="${Files}"  
     method="post" >
     <input type="text" th:field=*{id} readonly="readonly"/>
     <input type="text" th:field="*{fileName}" placeholder="Nom du Fichier" 
     class="form-control mb-4 
     col-4">
     <input type="text" th:field="*{verif}" placeholder="Accepted/Rejected" 
     class="form-control mb-4 
     col-4">
    <button type="submit" class="btn btn-info col-2"> Mettre à jour</button>
    </form>
    </div>
  

Комментарии:

1. да , спасибо , но я все еще получаю то же самое исключение

Ответ №1:

Имена полей на HTML-странице и классе сущности не совпадают. Они чувствительны к регистру. Таким образом, правильный должен быть

 private String fileName;
private String verif;