Walidacja

0

Mam problem z wyświetleniem w formularzu informacji o pustym polu.

Kod odpowiadający za sprawdzenie formularza

    @Autowired
    ServicePracownik servicePracownik;

    @Autowired
    ServiceKlient serviceKlient;

    @Autowired
    Klient klient;

  @RequestMapping(value = "/klienci" , method = RequestMethod.POST)
    public ModelAndView DodajKlienta (@Valid Klient klient , @ModelAttribute("idd") Pracownik pracownik, BindingResult bindingResult ){
            ModelAndView modelAndView = new ModelAndView();

        if(bindingResult.hasErrors())
        {
            modelAndView.addObject("users" , servicePracownik.getAllPracownik());
            modelAndView.addObject("klient" , new Klient());
            modelAndView.setViewName("dodanie_klienta");
        }
        else {
            klient.setPracownik(pracownik);
            serviceKlient.createOrUpdateKlient(klient);
            modelAndView.setViewName("redirect:/strona/klienci");
        }
            return modelAndView;
    }

Formularz html

					  <form th:object="${klient}" method="post" th:action="@{/strona/klienci}" >

						  <input hidden="hidden" th:field="*{id}">

						  <div class="form-row">
							<div class="form-group col-md-8">
							  <label >Imię i Nazwisko lub Nazwa</label>
							  <input type="text" class="form-control is-valid" th:field="*{nazwa}" >
				     			<label class="validation-message" th:if="${#fields.hasErrors('nazwa')}" th:errors="*{nazwa}"></label>
							</div>
    @Column
    @NotEmpty(message = "IMIĘ i NAZWISKO nie może być puste")
    private String nazwa;

Informacja o błędzie

Field error in object 'klient' on field 'nazwa': rejected value []; codes [NotEmpty.klient.nazwa,NotEmpty.nazwa,NotEmpty.java.lang.String,NotEmpty]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [klient.nazwa,nazwa]; arguments []; default message [nazwa]]; default message [IMIĘ i NAZWISKO nie może być puste]]
Nie wiem gdzie jest problem po stronie java czy html

0

Polecam przerobić najpierw jakiś tutorial, problem wygląda na podstawowy. Po kodzie jednak widzę, że nie bardzo wiesz, co czynisz:

@Autowired
Klient klient;

Klient ma być DTOsem, encją czy beanem?

Poleciał wyjątek walidacji, ale dla klucza IMIĘ i NAZWISKO nie może być puste nie masz wpisu w messages.properties - to tam powinien znajdować się tekst: https://www.baeldung.com/spring-custom-validation-message-source

0

Ogólnie to jest pozostałość po moich próbach rozwiązania problemu, znalazłem na stackoverflow chyba podobny problem.
https://stackoverflow.com/questions/53336349/springboot-validation-exception-org-springframework-validation-beanpropertybind
Ja zrozumiałem że muszę wstrzyknąć obiekt.

1 użytkowników online, w tym zalogowanych: 0, gości: 1