Cześć.
Piszę sobie nieduży projekt przy użyciu SpringMVC + Hibernate + MySql.
Trochę od tyłu się za to zabrałem ale zrobiłem sobie najpierw logowanie do aplikacji za pomocą Spring Security oraz UserDetails.
Aktualnie tworzę rejestrację.
Walidacja pól odbywa się przy pomocy hibernate validation.
Doszedłem do momentu sprawdzania poprawności podania 2 haseł (czy są takie same). Zrobiłem to dość łopatologicznie ponieważ dodałem do modelu User pole:
@Transient
private String confirmPassword;
Później w __kontrolerze __ je porównuje:
if (Administrator.getPassword().equals(Administrator.getConfirmPassword())==false){
model.addAttribute("error","Twoje hasła różnią się od siebie!");
}
Ogólnie rozwiązanie działa aczkolwiek wydaje mi się że nie jest ono do końca odpowiednie.
Jeśli jest coś lepszego to może ktoś mógłby podpowiedzieć co i jak (nie chodzi mi o gotowca tylko wskazówkę).
Pytanie numer 2. Mój projekt składa się z Modeli klas które odwzorowują tabelę w bazie, do tego mam DAO oraz Service. No i oczywiście kontrolery.
Jeśli chciałbym wykonywać jakieś operacje na obiekcie X (cokolwiek to może być, np sprawdzenie czy login nie składa się ze słów wulgarnych) to w którym miejscu powinienem pisać metodę sprawdzającą? Wydaje mi się że implementacja powinna być w DAO a Serwis powinien delegować do określonej metody w DAO. Aczkolwiek nie jest to operacja wykonywana na bazie danych a więc pewności nie mam. Chodzi mi po prostu o dobrą praktykę a nie klepanie kodu byle gdzie byle działało.
Pozdrawiam,
~eL