Quel est le but du liant init au spring MVC

Ceci est le code sur internet pour init binder

@InitBinder public void initBinder(WebDataBinder binder) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); } 

Quelqu’un peut-il s’il vous plaît expliquer:

1) Pourquoi est-il utilisé, je veux dire, quel était le problème avant, comment il a été résolu avec cette fonction. donc je veux savoir quel était le problème avec la date originale qui a été résolu avec ce format de date?

2) Comment utiliser ce format du sharepoint vue du formulaire JSP? Si nous saisissons la date au format texte, cela se transforme-t-il en format spécifique et le sauvegarde-t-il?

3) Comment applique-t-il cette mise en forme? Doit-on faire quelque chose en classe d’objects?

1) Avant, il fallait parsingr manuellement la date:

  public void webmethod(@RequestParam("date") Ssortingng strDate) { Date date = ... // manually parse the date } 

Vous pouvez maintenant obtenir la date analysée directement:

  public void webmethod(@RequestParam("date") Date date) { } 

2) Si votre page jsp fournit une date sur le formulaire yyyy-MM-dd vous pouvez la récupérer en tant qu’object Date directement dans votre contrôleur.

3) Spring essaye tous les éditeurs enregistrés pour voir si les valeurs peuvent être converties en objects. Vous n’avez rien à faire dans l’object lui-même, c’est la beauté de celui-ci.

Spring lie automatiquement les données simples (Ssortingngs, int, float, etc.) dans les propriétés de votre commande bean. Cependant, que se passe-t-il lorsque les données sont plus complexes, par exemple, que se passe-t-il lorsque vous souhaitez capturer une chaîne au format «20 janvier 1990» et que Spring crée un object Date dans le cadre de l’opération de liaison. Pour ce travail, vous devez informer Spring Web MVC de l’utilisation des instances de PropertyEditor dans le cadre du processus de liaison:

 @InitBinder public void bindingPreparation(WebDataBinder binder) { DateFormat dateFormat = new SimpleDateFormat("MMM d, YYYY"); CustomDateEditor orderDateEditor = new CustomDateEditor(dateFormat, true); binder.registerCustomEditor(Date.class, orderDateEditor); }