Lorsque vous utilisez SpringMVC, vous rencontrez souvent des conversions entre les chaînes de date dans le formulaire et le type de date de Javabean, tandis que SpringMVC ne prend pas en charge les conversions dans ce format par défaut, vous devez donc configurer et personnaliser manuellement la liaison de données pour résoudre ce problème.
Utilisez Springmvc Annotation @InitBinder et la classe WebDateBinder de Spring pour fonctionner dans des contrôleurs qui nécessitent une conversion de date.
WebDatabinder est utilisé pour lier les paramètres de demande à l'éditeur de propriété spécifié. Étant donné que la valeur transmise au contrôleur au premier plan est de type de chaîne, lorsque la valeur définie dans le modèle, si la propriété de SET est un objet, Spring trouvera l'éditeur correspondant pour la conversion, puis le définit.
Le code est le suivant:
@InitBinder public void initbinder (webDatabinder Binder) {SimpledateFormat DateFormat = new SimpledateFormat ("yyyy-mm-dd"); DateFormat.SetLenient (false); Binder.RegisterCustomEditor (date.class, new CustomDateEditor (DateFormat, true)); }Besoin d'ajouter le fichier de configuration dans Springmvc
<! - Enregistrement de l'analyseur -> <an bean> <propriété name = "MessageConverters"> <sist> <refEan = "StringHttpMessageConverter" /> </ List> </ Property> </ bean> <! - String Type PARSER, permettant un retour direct de String ---> <Bean Id = "StringHttPmessageConverter" />
Changement d'écriture
<MVC: Annotation-Driven> <MVC: Message-Converters> <Eban> <Constructor-Arg Value = "UTF-8" /> </ Bean> </Mvc: Message-Converters> </MVC: annotation-Drive>
développer:
Spring MVC enregistrera ces éditeurs avant de lier le formulaire. Spring lui-même fournit un grand nombre de classes d'implémentation, telles que CustomDateEditor, CustomBooleanEdiator, CustomNumberEditor, etc., qui sont fondamentalement suffisantes.
Appelez la méthode RegisterCustomEditor de WebDatabinder lors de l'utilisation
Registre Code source de registre:
public void registerCustomEditor (class <?> requiredType, PropertyEditor PropertyEditor) {getPropertyEditorRegistry (). RegisterCustomEditor (requiredType, PropertyEditor);} Le premier paramètre requiredType est le type qui doit être converti.
Le deuxième paramètre PropertyEditor est l'éditeur de propriétés, qui est une interface. Les exemples mentionnés ci-dessus tels que CustomDateEditor, tous héritent de la classe PropertyEditorsupport qui implémente cette interface.
Nous ne pouvons pas non plus utiliser ces classes d'éditeur qui les accompagnent.
Nous pouvons nous construire:
import org.springframework.beans.propertyeditors.propertiesEditor; public class doubleEditor étend PropertyEditOrSupport {@Override public void setastext (String text) lève illégalArgumentException {if (text == null || text.equals ("") {text = "0"; } setValue (double.parsedouble (texte)); } @Override public String getastext () {return getValue (). ToString (); }}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.