mam typ danych w mojej aplikacji o nazwie Foo, który wygląda mniej więcej tak:Jak skonfigurować specyficzny dla sterownika program do formowania pola ze Spring MVC?
public class Foo {
// synthetic primary key
private long id;
// unique business key
private String businessKey;
...
}
Ten typ jest używany w wielu formach w całej aplikacji internetowej i zazwyczaj chcesz, aby przekształcić go w tę iz powrotem za pomocą właściwości id
więc zaimplementowałem formater Spring3, który to robi i zarejestrował ten formatator z globalną usługą konwersji wiosennej.
Jednak mam jeden przypadek użycia formularza, w którym chcę przekonwertować, używając zamiast tego businessKey
. Łatwo jest zaimplementować formatter, aby to zrobić, ale jak mogę powiedzieć Springowi, aby używał tego formatyzatora tylko dla tej konkretnej formy?
znalazłem dokument w http://static.springsource.org/spring/previews/ui-format.html który ma sekcję o rejestracji formatek pól specyficznych (patrz 5.6.6 całą drogę na dole), która oferuje ten przykład:
@Controller
public class MyController {
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerFormatter("myFieldName", new MyCustomFieldFormatter());
}
...
}
To jest dokładnie to, co chcę , ale jest to dokument podglądu z 2009 roku i nie wygląda na to, że metoda registerFormatter
wprowadziła go do finalnego wydanego interfejsu API.
Jak to zrobić?
Wydaje się, że nie może zobaczyć [SPR-7773] (https: //jira.springsource. org/browse/SPR-7773), [SPR-6069] (https://jira.springsource.org/browse/SPR-6069) i [SPR-6015] (https://jira.springsource.org/browse/ SPR-6015) –
Wow, masz rację. To wielka dziura i sądząc po wpisach z JIRA, a nie takiej, którą zespół Wiosen bierze bardzo poważnie. – Jlaud
Można naśladować sposób, w jaki Spring formatuje liczby i daty z adnotacjami - 'AnnotationFormatterFactory'. http://docs.spring.io/spring/docs/3.1.4.RELEASE/javadoc-api/org/springframework/format/AnnotationFormatterFactory.html –