Piszę forme w Springu używając SimpleFormController. Wszystkie wartości przekazywane przez forme są typu String, ale w modelu część jest np typu ini, Date itd. Mógłbym stworzyć osobną klase gdzie wszystkie pola były by typu string a potem tą klase skonwertował bym do odpowiedniej klasy z modelu z polami int i Date. Jednak wolałbym nie tworzyć dodatkowych klas i wykorzystać tylko klase z modelu. Czy istnieje jakiś sposób którym mógłbym skonwertować dane z formy klasy z modelu bez pomocniczych klas ?
0
0
Wydaje mi się, że nie musisz o to się martwić, Spring sam rozpozna ze pole jest typu int i przeprowadzi konwersję
0
Fakt na int sam przeprowadzi konwersje. Ale np. date mam w niestandardowej postaci więc już sam nie zrobi konwersji. Czy ktoś wie jak rozwiązać ten problem ?
Pozdrawiam.
PS. Przepraszam za temat, miałem coś jeszcze dopisać do niego ale za wcześnie opublikowałem. Mam nadzieje że temat nie poleci do kosza.
0
Zaimplementuj poniższą metodę w swoim kontrolerze:
@Override
protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) throws Exception {
binder.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("yyyy-MM-dd HH:mm"), true));
}
W skrócie należy zarejestrować edytor właściwości, który będzie potrafił przetworzyć obiekt danej klasy na wartość i tekstową i na odwrót. Spring MVC ma już kilka zaimplementowanych edytorów, między innymi edytor dat, którego użyłem powyżej.
0
Dzięki hurikhan - pomogło :)