Ho un tipo di dati nella mia applicazione chiamato Foo che sembra qualcosa di simile:Come si configura un formattatore di campo specifico del controllore con Spring MVC?
public class Foo {
// synthetic primary key
private long id;
// unique business key
private String businessKey;
...
}
Questo tipo è usato in molte forme in tutta l'applicazione web e in genere si desidera convertire avanti e indietro utilizzando la proprietà id
quindi ho implementato un formattatore Spring3 che lo fa e ho registrato quel formattatore con il servizio di conversione Spring globale.
Tuttavia, ho un caso di utilizzo di un modulo in cui voglio convertire utilizzando il businessKey
. È abbastanza facile implementare un formattatore per farlo, ma come faccio a dire a Spring di usare quel formattatore solo per questo specifico modulo?
Ho trovato un documento in http://static.springsource.org/spring/previews/ui-format.html che ha una sezione sulla registrazione formattatori specifici di campo (vedi 5.6.6 tutto il percorso in basso) che offre questo esempio:
@Controller
public class MyController {
@InitBinder
public void initBinder(WebDataBinder binder) {
binder.registerFormatter("myFieldName", new MyCustomFieldFormatter());
}
...
}
Questo è esattamente quello che voglio , ma questo è un documento di anteprima del 2009 e non assomiglia al metodo registerFormatter
reso nell'API finale rilasciata.
Come si dovrebbe fare questo?
Sembra non si può, vedere [SPR-7773] (https: //jira.springsource. org/browse/SPR-7773), [SPR-6069] (https://jira.springsource.org/browse/SPR-6069) e [SPR-6015] (https://jira.springsource.org/browse/ SPR-6015) –
Wow, hai ragione. Questa è una buca enorme e a giudicare dalle voci della JIRA, non una che la squadra di primavera prende molto sul serio. – Jlaud
È possibile simulare il modo in cui Spring formatta numeri e date con annotazioni - 'AnnotationFormatterFactory'. http://docs.spring.io/spring/docs/3.1.4.RELEASE/javadoc-api/org/springframework/format/AnnotationFormatterFactory.html –