Dans l'article précédent, j'ai introduit l'explication détaillée du Spring Learning Notes 1 du CIO et j'essaie d'utiliser les annotations et le code Java autant que possible. Ensuite, cet article se concentre sur l'introduction du code d'exemple de vérification des données du formulaire Spring Learning Notes 2. Pour plus de détails, veuillez consulter cet article!
1. Formulaire Vérification des données
Lors de l'inscription, les utilisateurs doivent remplir leur compte, mot de passe, e-mail et numéro de téléphone mobile, qui sont requis et doivent répondre à certains formats. Par exemple, le compte doit être inférieur à 32 chiffres, l'e-mail doit répondre au format de messagerie et le numéro de téléphone mobile doit être un numéro à 11 chiffres, etc. Vous pouvez utiliser des informations de vérification au moment de l'enregistrement, ou écrire une classe d'outils spécifiquement pour la vérification; Voyons comment implémenter la vérification des données du formulaire via des annotations simples dans SpringMVC.
Dans le cadre du package javax.validation.constraints, plusieurs annotations sont définies. Par exemple:
@Notnull: La valeur de l'élément annoté ne doit pas être nul. Remarque: Si vous ne remplissez aucune donnée dans le formulaire, cela ne signifie pas qu'il est nul, mais une chaîne vide.
@Size: L'élément annoté doit être une chaîne, une collection ou un tableau, et la longueur doit répondre à la plage donnée.
@Past: La valeur de l'élément annoté doit être un temps passé.
@Digits: l'élément annoté doit être un nombre et sa valeur doit avoir un nombre spécifié de chiffres.
@Pattern: La valeur de l'élément annoté doit correspondre à l'expression régulière donnée
De plus, davantage d'annotations sont définies dans le package org.hibernate.validator.CONSTRAINTS. Par exemple:
@EMail: Format d'e-mail correspondant.
@Url: correspondez au format URL.
Voyons comment l'utiliser dans SpringMVC.
1. Faisons d'abord celle requise dans le fichier pom.xml
<dependency> <proupId> javax.validation </rom grouped> <Artifactid> validation-api </ artifactid> <version> 1.1.0.final </prewing> </dependency> <dependency> <proupId> org.hibernate </promyd> <petifactid> hibernate-validator </pterifactid> <frision> </De version>> 5.4.final </Dedidator> </ptetifactid>
Il convient de noter que Javax.Validation définit uniquement l'API de vérification, et la mise en œuvre de l'API doit être ajoutée, telle que org.hibernate.validator, sinon une erreur sera signalée.
2. Ajoutez des annotations aux propriétés de la classe, en prenant user.java comme exemple.
La classe publique l'utilisateur implémente Serializable {@Size (min = 32, max = 32, message = "uUid devrait être une chaîne 32 bits") ID de chaîne privée; @Size (min = 1, max = 32, message = "La longueur du compte devrait être entre 1-32-bits") String privé Username; @Notempty (message = "Mot de passe vide ") @ e-mail (message =" e-mail ne peut pas être vide ") Email de chaîne privée; @Size (min = 11, max = 11, message =" La longueur du numéro de téléphone mobile est 11 chiffres ") Phring privé téléphone;} Message: Si la vérification des données du formulaire échoue, un message d'erreur peut être affiché.
3. Appliquez la fonction de vérification dans UserController et ajoutez l'annotation @valid.
Prenez UserController.java comme exemple:
@Controller@RequestMapping("/user")public class UserController {private UserService userService;@Autowiredpublic UserController(UserService userService) {this.userService = userService;}@RequestMapping(value = "/register", method = RequestMethod.POST)public String processRegistration(@Valid User user, Errors errors) { //@Valid, the user objet applique la fonction de vérification if (errors.haserrors ()) {// Si la vérification du formulaire échoue, revenez à la page d'enregistrement renvoie "registre";} if (user.getId () == "") user.setid (uUid.randomuUid (). tostring (). Repaceall ("-", "); Date (). Gettime ()); userservice.adduser (utilisateur); redirection: / user / "+ user.getUsername ();}} 4. Écrivez un fichier JSP et affichez la page, en prenant Register.jsp comme exemple:
<% @ page contentType = "text / html; charset = utf-8" lingots = "java"%> <% @ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <% @ taglib prefix = "sf" uri = "http://www.springframework.org/tags/form"%> <% @ page session = "false"%> <html lang = "en"> </ title> registre </ title> <link rel = "stylesheet" type = "text / css" href = "<c: url value =" / ressources / style / style. > / head> <body> <sf: form metheth = "post" action = "/ registre / user / registre" commandname = "user"> <% - Si la vérification des données du formulaire échoue, le message d'erreur est affiché -%> <sf: erreurs path = "*" élément = "div" cssclass = "errers" /> <br /> <table align = "Center"> <tr> <td> Username: Username: Username: Username: Username: Username: Username: Username: Username: USERNAME: USERNAME: </td> <td> <sf: entrée path = "username" csserrorclass = "errers" /> </td> <tr> <td> mot de passe: </td> <td> <sf: mot de passe = "mot de passe" csserrorclass = "erreurs" /> </td> </ tr> <tr> <td> e-mail: </ TD> path = "e-mail" csserrorclass = "erreurs" /> </td> </tr> <tr> <td> téléphone portable: </td> <td> <sf: entrée path = "cellulephone" csserrorclass = "erreurs" /> </ td> </tr> </plow> <r /> <entre type = "soumettre" value = "registre" /> </ sf: form> </ body> </html>
L'effet final est le suivant:
2. Téléchargement de fichiers
Au printemps, le téléchargement de fichiers est simple et ne prend que 3 étapes.
1. Si le DispartCherservlet que nous configurons hérite de la méthode AbstractannotationConfigDispatcherservitializer, surchargez la méthode de personnalité () pour configurer les détails spécifiques du multiparte.
@OverRideProtected Void Personnalisation (servletRegistration.Dynamic Registration) {// Limiter la taille du fichier téléchargé à pas plus de 2 Mo, la demande entière ne dépasse pas 4 m et tous les fichiers téléchargés doivent être écrits sur disque.SetMultupartipConfig (nouveau multipartConfigelement ("/ tmp / uploads", 2097152, 4194444, 0));} 2. Configurez l'analyseur multipar.
// Configurer le résolver multipart @BeanPublic MultipartResolver MultipartResolver () lève ioException {return new StandardServletMultipartResolver ();} 3. Processus de la demande de multiparte. Pour des informations telles que les fichiers téléchargés par les utilisateurs, vous pouvez utiliser le tableau d'octets [] pour les représenter, mais il est recommandé que l'interface multipartfile fournie par Spring soit recommandée. Il fournit plus de fonctions, telles que l'obtention du nom de fichier, de la taille du fichier, du type de fichier, etc.
@Requestmapping (value = "/ {username}", méthode = requestMethod.post) public string showUserInfo (@RequestPart ("icon") icône multipartfile) lance ioException {icon.transferto (nouveau fichier ("/ utilisateurs / pingping / projets / idea icon.getoriginalFileName ())); retour "utilisateur";} Méthode TransferTo (File dest): Écrivez des fichiers dans le système.
Écrivez un test de page pour voir si le fichier dans le répertoire de fichiers spécifié a été téléchargé avec succès.
<form méthode = "Post" EncType = "Multipart / Form-data"> <Belle> Téléchargez l'image Avatar? </ Label> <Input Type = "File" Name = "ICON" Accept = "Image / JPEG, Image / Png" Value = "SELECT FILE" /> <Button Type = "Soumis"> Confirmer </ Button> </ Form>
1. Références: Pratique pratique du printemps (4e édition).
2. Adresse GitHub: https://github.com/everseeker0307/register.
Ce qui précède est la vérification des données du formulaire et le téléchargement de fichiers Exemple de code de Spring Learning Notes 2 vous introduit par l'éditeur. J'espère que cela vous sera utile. Si vous avez des questions, veuillez me laisser un message et l'éditeur vous répondra à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!