Apache Commons contient de nombreux outils open source pour résoudre les problèmes qui sont souvent rencontrés dans la programmation et réduisent le travail répétitif. Vous trouverez ci-dessous une brève introduction aux outils que j'ai utilisés au cours du processus de développement au cours des dernières années.
| Composants | Introduction fonctionnelle |
| Beanutiles | Fournit diverses opérations, objets de clonage, propriétés, etc. pour Javabeans. |
| Entre | Convertir les objets XML et Java les uns aux autres. |
| Codec | Outils qui traitent des méthodes de codage couramment utilisées telles que DES, SHA1, MD5, BASE64, etc. |
| Collections | Fonctionnement du cadre de la collection Java. |
| Compresse | Java fournit une bibliothèque de classe de compression de packaging de fichiers. |
| Configuration | Une bibliothèque de classe de gestion de configuration pour les applications Java. |
| Dbcp | Fournissez des services de mise en commun de connexions de base de données. |
| DBUTILS | Fournit une encapsulation de l'opération de JDBC pour simplifier la requête de données et enregistrer les opérations de lecture. |
| Java envoie du courrier à l'encapsulation de Javamail. | |
| Fileupload | Fournit la fonction de téléchargement de fichiers. |
| Httpclient | Fournit diverses opérations de communication entre les clients HTTP et les serveurs. Il a maintenant été changé en httpcomponents |
| Io | Encapsulation des outils IO. |
| Égouter | Packages de classe d'outils pour les méthodes d'objet Java Basic telles que: StringUtils, Arrayutils, etc. |
| Enregistrement | Il fournit une interface de journalisation Java. |
| Validateur | Fournit un cadre de vérification des données pour le client et le côté serveur. |
1. Beanutils fournit diverses opérations pour les javabeans, comme l'objet, la copie des attributs, etc.
// 1. Objet de clonage // Créer un nouveau bean java normal à utiliser comme classe publique d'objet cloné {private String name = ""; private String e-mail = ""; private int age; // omit set, get method} // créer une classe de test, où le code dans la méthode principale est le suivant: Importer java.lang.reflect.invocationtargexception; import java.utitil.hashmap; java.util.map; import org.apache.commons.beanutils.beanutils; import org.apache.commons.beanutils.convertutils; test public class {/ ** * @param args * / public static void Main (string [] args) {personne personne = new-personne (); personne. {// Clone Person Person2 = (Person) beanutils.clonebean (personne); System.out.println (Person2.getName () + ">>" + Person2.Getage ());} Catch (illégalAccessException e) {e.printstackTrace ();} Catch (InstantiationException E) gens // 2. Convertir un objet MAP en un bean // La clé de cet objet MAP doit correspondre aux propriétés du bean. Map map = new hashmap (); map.put ("name", "tom"); map.put ("e-mail", "tom @"); map.put ("age", "21"); // convertir la carte en une personne personne personne = new personne (); beanutils.populat (personne, map); // à travers la ligne de code ci-dessus, l'attribut de la personne a déjà la valeur que la valeur a été attribuée ci-dessus. // Convertir un haricot en un objet de carte, comme suit: map map = beanutils.decribe (personne)2. BETWIXT XML et les objets Java sont convertis.
// 1. Convertir javabean en contenu xml // créer une nouvelle classe de classe de classe publique {nom de chaîne privée; int privé; / ** Besoin de permettre de créer Bean à être créé via la réflexion * / Public PersonBean () {} Public PersonBean (nom de chaîne, int Age) {this.name = name; this.age = Age;} // Nom + Name + Method String tostring () {return "Person "', Age ='" + Age + "']";}} // Créer une classe WriteApp: Importer java.io.stringwriter; import org.apache.commons.betwixt.io.beanwriter; classe publique WriteApp {/ ** * Créez un exemple de bean et convertissez-le en XML. * / public static final void main (string [] args) lève une exception {// créer un stringwriter d'abord, nous l'écrire en tant que string stringwriter outputWriter = new StringWriter (); // entre que nous écrivons ici, nous devrions écrire le bean comme un fragment outwrite. Encoding = 'utf-8'?> / n "); // Créer un beanwriter, qui sera écrit au flux que nous avons préparé. Beanwriter beanwriter = new BeanWriter (outputwriter); // configurer betwixt // Pour plus de détails, veuillez consulter les docs Java ou le dernier document beanwriter.getxmlintrospector (). GetConfiguration (). SetAttributesForPrimites (false); beanwriter.getBinDinFiguration (). Si cet endroit ne passe pas dans le nom du nœud racine du XML, Betwixt devinera ce que c'est // Mais utilisons l'exemple de nom de bean comme nœud racine beanwriter.write ("personne", new PersonBean ("John Smith", 21)); // Sortie System.out.println (outputwriter.toString ()) Streams, // Mais voici un exemple et ne fera pas de plus, vous pouvez donc désactiver outputwriter.close ();}} // 2. Convertir XML en Javabean Import java.io.stringreader; import org.apache.commons.betwixt.io.beanreader; public class readApp {public static final void main (String args []) lance une exception {// créer un XML d'abord XML. Puisque ce n'est qu'un exemple, nous avons codé en dur un morceau de contenu XML StringReader xmlReader = new StringReader ("<? Xml version = '1.0' Encoding = 'utf-8'?> <ponv> <age> </ge> <name> James Smith </ name> </onym>"); // Créer un beanreader Beanreader BeanReader = new Beanreader (Créer un lecture Beanreader BeanReader = new Beanreader (); beanreader.getxmlintrospector (). getConfiguration (). setAttributesForPrimitives (false); beanreader.getBindingConfiguration (). SetMapids (false); // Enregistrer les beans afin que Betwixt sache ce que Bean Xml sera converti en beanreader.registerBeANClass ("personne", personne. PersonBean Person = (PersonBean) Beanreader.Parse (XMLReader); // Sortie System.out.println (personne);}}3. Le codec fournit certaines implémentations de codec public, telles que la base64, l'hexagone, le MD5, le phonétique et les URL, etc.
// base64 codec privé static String encodeTest (String str) {base64 base64 = new Base64 (); try {str = base64.encotetoString (str.getbytes ("utf-8"));} catch (unpportdedencodingException e) {e.printStackTrace ();} System.out.out.PrintLn ("Base64 Forced: "+ str); return str;} private static void decodeTest (string str) {base64 base64 = new base64 (); // str = arrays.tostring (base64.decodeBase64 (str)); str = new String (base64.decodeBase64 (str)); System.out.println ("Base64 décodé:" + str);}4. Les collections étendent Java.util et traitent les données assez flexibles.
org.apache.commons.collections Commons Collections Set personnalisés d'interfaces et classes d'outils communes
org.apache.commons.collections.bag un ensemble de classes qui implémentent l'interface du sac
org.apache.commons.collections.bimap un ensemble de classes qui implémentent les interfaces de la série BidImap
org.apache.commons.collections.buffer un ensemble de classes qui implémentent l'interface tampon
org.apache.commons.collections.collection un ensemble de classes qui implémentent l'interface java.util.collection
org.apache.commons.collections.comparators un ensemble de classes qui implémentent l'interface java.util.
org.apache.commons.collections.functors Commons Collections Set personnalisés de classes fonctionnelles
org.apache.commons.collections.iterators un ensemble de classes qui implémentent l'interface java.util.iterator
org.apache.commons.collections.KeyValue implémente un ensemble de classes liées à la collecte et au mappage de clé / valeur
org.apache.commons.collections.lignez un ensemble de classes qui implémentent l'interface java.util.list
org.apache.commons.collections.map un ensemble de classes qui implémentent les interfaces de série de cartes
org.apache.commons.collections.set un ensemble de classes qui implémentent les interfaces de série de sets
/ ** * Obtenez une certaine clé après la clé stockée dans l'ensemble * / ordonnance map = new LinkedMap (); map.put ("Five", "5"); map.put ("six", "6"); map.put ("sept", "7"); map.firstkey (); // returns "Map.nextkey (" cinq "); // retourne" six "map.nextkey (six"); Renvoie "sept" / ** * Obtenez de la valeur via la clé * Obtenez la clé via Valeur * Key and Value in Map * / BidImap bidi = new TreebiDImap (); bidi.put ("Six", "6"); bidi.get ("six"); // returns "6" bidi.getkey ("6"); // returns "six" // bidi.Removevalue ("6"); // supprime le mappage bidImap inverse = bidi.inversebidImap (); // renvoie une carte avec des clés et des valeurs échangées System.out.println (inverse); / ** * Obtenez le même élément dans les deux ensembles * / list <String> list1 = new ArrayList <string> (); list1.add ("1"); list1.add ("2"); list1.add ("3"); list <string> list2 = new ArrayList <string> (); list2.add ("2"); list2.add ("3"); list2.add ("5"); collection c = collection.retainall (list1, list2); System.out.println (c);5. Compress Commons Packaged and Comprestic Class Libraries.
// Créer un objet compressé ziparchiveEntry Entry = new ZiparCheEntry ("CompressTest"); // le fichier à compresser f = nouveau fichier ("e: //test.pdf"); fileInputStream fis = new FileInputStream (f); // le fichier compressé par l'objet de sortie ziparchiveoutPutStream zipoutput = new ZiparchiveTtreSTSTREST (new File ("e: //test.zip")); zipOutput.putarchiveEntry (entrée); int i = 0, j; while ((j = fis.read ())! = -1) {zipOutput.write (j); i ++; System.out.println (i);} zipoutput.closeSiveRy (); zipTutput.close;6. La configuration est utilisée pour aider à traiter les fichiers de configuration et prend en charge de nombreuses méthodes de stockage.
1. Fichiers de propriétés
2. Documents XML
3. Fichiers de liste de propriétés (.plist)
4. Jndi
5. JDBC DataSource
6. Propriétés du système
7. Paramètres de l'applet
8. Paramètres du servlet
// donne un exemple simple de propriétés # usergui.properties couleurs.background = #fffff couleurs.Foreground = # 000080 window.width = 500 window.height = 300 PropertiesConfiguration config = new PropertiesConfiguration ("usergui.properties"); config.setproperty ("couleurs.background", "# 000000); Config. config.save ("usergui.backup.properties); // Enregistrer une copie Integer Integer = config.getInteger (" Window.Width ");7. DBCP (Database Connection Pool) est un pool de connexion de base de données qui repose sur le mécanisme de pool d'objets Jakarta Commons-Pool. La source de données de Tomcat utilise DBCP.
Importer javax.sql.datasource; import java.sql.connection; import java.sql.statement; import java.sql.resulttset; import java.sql.sqlexception; import org.apache.commons.pool.objectpool; import org.apache.commons.pool.impl.agerimerica org.apache.commons.dbcp.connectionfactory; import org.apache.commons.dbcp.poolingdatasource; import org.apache.commons.dbcp.poolableConnectionFactory; import org.apache.commons.dbcp.drivermanageConnectionFactory; // Static void main (String [] args) {System.out.println ("Charge JDBC Driver"); try {class.forname ("oracle.jdbc.driver.oracledriver");} capture (classnotfoundException e) {e.printStackTrace ();} system.out.println ("Done"); //System. source "); dataSource dataSource = setupDataSource (" jdbc: oracle: mince: @localhost: 1521: test "); system.out.println (" Done. "); // connection conn = null; instruction stmt = null; resultTset rset = null; try {System.out.println (" Création de connexion "); Conn = Conn = DataSource.getConnection (); System.out.println ("Création de l'instruction."); STMT = Conn.CreateStatement (); System.out.println ("Exécution de l'instruction."); RSET = STMT.EXECUTEQUERY ("SELECT * FROM Person"); System.out.println ("Résultats:"); intcools = rset.getMetAdata (). getColumnCount (); while (rset.next ()) {for (int i = 0; i <= numCols; i ++) {system.out.print ("/ t" + rset.getString (i));} Enfin {try {if (rset! = null) rset.close ();} catch (exception e) {} try {if (stmt! = null) stmt.close ();} catch (exception e) {} try {if (Conne ConnectUri) {// Définissez l'adresse de connexion ConnectionFactory ConnectionFactory = new DriverManagerConnectionFactory (ConnectUri, null); // Créer la connexion Factory PoolableConnectionFactory) PoolableConnectionFactory); // Créer un poolagedriver PooringDataSource dataSource = new PooringDataSource (ConnectionPool); return dataSource;}}8. Une bibliothèque de classe d'outils JDBC Resource fournie par l'organisation DBUtilsapache. Il s'agit d'une encapsulation simple de JDBC, encapsulation secondaire des classes de base de données opérationnelles traditionnelles et peut convertir l'ensemble de résultats en liste. , et cela n'affecte pas les performances du programme.
Classe DButils: classe de démarrage
Résultats Interface et interface de la conversion: interface de type de conversion
Classe MapListhandler: classe d'implémentation, convertir les enregistrements en liste
Classe Beanlisthandler: implémente la classe, convertit les enregistrements en liste et fait des enregistrements en objet de type javabean
Classe QReryRunner: Classe qui exécute les instructions SQL
import org.apache.commons.dbutils.dbutils; import org.apache.commons.dbutils.queryrunner; import org.apache.commons.dbutils.handlers.beanlisthandler; import java.sql.connection; import java.sql.drivermanager; import java.sql.sxlex; java.util.list; // converti pour lister les beanlists de classe publique {public static void main (string [] args) {connection conn = null; string url = "jdbc: mysql: // localhost: 3306 / ptest"; string jdbcdriver = "com.mysql.jdbc.driver"; string user = "root"; com.mysql.jdbc.driver "; string user =" root "; string = "ptest"; dbutils.loaddriver (jdbcdriver); essayez {conn = drivermanager.getConnection (url, utilisateur, mot de passe); queryrunner qr = new queryrunner (); lister les résultats = (list) qr.query (conn " results.size (); i ++) {personne p = (personne) results.get (i); System.out.println ("id:" + p.getId () + ", nom:" + p.getName ());}} catch (sqlexception e) {e.printstackTrace (); id; name de chaîne privée; // omit set, get method} import org.apache.commons.dbutils.dbutils; import org.apache.commons.dbutils.queryrunner; import org.apache.commons.dbutils.handlers.maplisthandler; import java.sql.connection; import java.sqller; importer java.sql.connection; import java.sqller; import java.sql.connection; Importer Java.sqller; Importer Java.Sql.Connection; Import Java.sqller; Importer Java.Sql.Connection; Import Java.SQL.DERMER; java.sql.sqlexception; import java.util.list; importer java.util.map; // convertir en map la classe publique maplists {public static void main (string [] args) {connection conn = null; string url = "jdbc: mysql: // localhost: 3306 / ptest"; string jdbcdriver = "com.mysql.jdbc.Driver"; String user = "root"; String password = "ptest"; dbutils.loaddriver (jdbcdriver); try {Conn = driverManager.getConnection (URL, user, mot de passe); QueryRunner QR = new Queryrunner (); list seeTements = (list) Qr.Query (Conners MapListhandler ()); for (int i = 0; i <œs.size (); i ++) {map map = (map) resultS.get (i); System.out.println ("id:" + map.get ("id") + ", name:" + map.get ("name"));}} catch (sqlexception e) {e.printStackTrace ();} {Dbutils.closequietly (conn);}}}9. Une API open source fournie par e-mail est une encapsulation de Javamail.
// Envoi des e-mails à l'aide de communes Email Public Static void Main (String Args []) {Email Email = new SimpleEmail (); email.sethostname ("smtp.googlemail.com"); email.setsmtpport (465); email.setAuthenticator (new defaultAuthenticat "Mot de passe")); email.setsslonconnect (true); email.setFrom ("[email protected]"); email.setsubject ("testmail"); email.setmsg ("Ceci est un courrier de test ... :-)"); email.addto ("[email protected]"); email.ssend ();};}10. Fonction de téléchargement de fichiers Web Fileupload Java.
// Exemple officiel: // * Vérifiez que nous avons une requête de téléchargement de fichier booléen isMultupart = servletFileUpload.ismulTipartContent (demande); // Nous avons maintenant une liste d'éléments // Si votre application est proche du cas le plus simple, le traitement ci-dessus est suffisant. Mais parfois, nous avons encore besoin de plus de contrôle. // Voici plusieurs options de contrôle: // Créer une usine pour les éléments de fichier basés sur le disque DiskFileItemFactory Factory = new DiskFileItemFactory (); // Set Factory Contraintes Factory.SetSizethReshold (YourMaxMemorySize); Factory.SetReRepository (YourTempDirectory); // Créer un nouveau fichier Upload Handler ServiceFileflepLoload UppoLory); ServletFileUpload (Factory); // Définissez la taille maximale de téléchargement upload.SetSizEMax (yourMaxRequestSize); // analyse toutes les demandes Liste / * FileItem * / items = upload.PaSerequest (request); // Créer une usine pour disk-base yourTempDirectory); // Une fois l'analyse terminée, vous devez traiter davantage la liste des éléments. // traite les éléments téléchargés iterator iter = items.Itorator (); while (iter.hasnext ()) {fileItem item = (fileItem) iter.next (); if (item.isformField ()) {processFormField (item);} else {processUploadFile (item);}} // distinguer si les données sont des données de formulaire simple, si ce sont des données simples: // processFormField if (item.isformField ()) {String Name = item.getFieldName (); String Value = item.getString (); // ... ProcessUpLoadEdFile if (! item.isformField ()) {String FieldName = item.getFieldName (); String FileName = item.getName (); String ContentType = item.getContentType (); boolean isInMemory = item.isinMemory (); Long SizeInBytes = ItemSize (); // ... omit Steps} Fichier, ou convertissez-les en flux // traiter un fichier téléchargement if (writeTofile) {fichier uploadFile = new File (...); item.write (uploadEdFile);} else {inputStream uploadedStream = item.getInputStream (); // ... omis marte uploadedStream.close ();} // ou convertir dans un byt Mémoire octet [] data = item.get (); // ... étapes omises // Si ce fichier est vraiment grand, vous pouvez faire rapport à l'utilisateur combien il a été transmis au serveur, afin que l'utilisateur puisse comprendre le processus de téléchargement // Créer un progrès ProgressListener ProgressListener = New ProgressListener () {public Void Update (Long PbyTesread, Long PontentLength, int Pitems) {System lisent actuellement l'élément "+ PITEMS); if (pcontentLength == -1) {System.out.println (" So Far " lire. ");}}}; upload.setProgressListener (ProgressListener);11. Httpcllien est un client HTTP compatible HTTP / 1.1 implémenté sur la base de HTTPCore. Il fournit une série de modules de gestion de la connexion HTTP Statut Maintenance et HTTP.
// Obtenir la méthode import Java.io.ioException; import org.apache.commons.httpclient. une instance de httpclient httpclient httpclient = new httpclient (); // créer une instance de la méthode get getMethod getMethod = new GetMethod ("http://www.ibm.com"); // utilise la politique de récupération par défaut fournie par le système pour getMethod.getParams (). new defaulthTTPMethodRetRyHandler ()); essayez {// exécuter getMethod int statuscode = httpclient.execureMethod (getMethod); if (statuscode! = httpstatus.sc_ok) {System.err.println ("Méthode a échoué:" + getMethod.getStatusline ());} // Lire le contenu byte [] ResponseBody = getMethod.getResponseBody (); // great le contenu System.out.println (new String (réponse));} catch (HTTPEXCEAU s'est produit, ce qui peut être que le protocole est incorrect ou que le contenu renvoyé est problématique System.out.println ("Veuillez vérifier votre adresse HTTP fournie!"); e.printStackTrace ();} Catch (ioException e) {// Une exception de réseau s'est produite e.printStackTrace ();} Enfin {// Libérez la connexion getMethod.releSeConnection ();}}}} // Méthode post importation java.io.ioException; import org.apache.commons.httpclient. *; import org.apache.commons.httpclient.methods.postmethod; import org.apache.comons.httpccllient.postmet classe post-échantillon {public static void main (string [] args) {// construire une instance de httpclient httpclient httpclient = new httpclient (); // créer une instance de la méthode post-chaîne url = "http://www.oracle.com/"; NameValuepair [] data = {new nameValuepair ("id", "youuserName"), new nameValuepair ("passwd", "yourpwd")}; // mettre la valeur du formulaire dans postmethod postMethod.SetRequestbody (data); // exécuter postMethod int statut = httpclit HttpClient ne peut pas gérer automatiquement le transfert pour les demandes qui nécessitent des services ultérieurs tels que Post et Put // 301 ou 302 if (statuscode == httpstatus.sc_moved_permanly || statuscode == httpstatus.sc_moved_temporly) {// retirer l'adresse de la direction de la tête de tête débutante = PostMethod.getResponseHeader ("emplacement"); String location = null; if (locationHeader! = null) {location = locationHeader.getValue (); System.out.println ("La page a été redirigé vers:" + emplacement);} else {system.err.println ("La valeur du champ de localisation est null.");} return;}}}}12. Io est très pratique pour Java.io d'étendre le fichier d'opération.
// 1. Lire Stream // Code standard: InputStream dans = new URL ("http://jakarta.apache.org") .openStream (); try {inputStreamReader inr = new InputStreamReader (in); buffereDreder buf = new BuffereDreder (inr); Line à chaîne; {System.out.println (line);}} enfin {in.close ();} // utilisez ioutils inputStream dans = new url ("http://jakarta.apache.org") .openStream (); try {system.out.println (ioutils.tostring (in));} {Ioutils.closequietly (in);} // 2. Lire Fichier Fichier Fichier = nouveau fichier ("/ commons / io / project.properties"); list Lines = fileUtils.readlines (fichier, "utf-8"); // 3. Afficher l'espace restant long freesace = filesystemUtils.freespace ("c: /");13. Lang est principalement une collection d'outils publics, tels que les opérations sur les personnages, les tableaux, etc.
// 1 fusionner deux tableaux: org.apache.commons.lang. ArrayUtils // Parfois, nous devons combiner deux tableaux dans un tableau, et il est très pratique d'utiliser des arrayutils. L'exemple est le suivant: private static void testarr () {string [] s1 = new String [] {"1", "2", "3"}; string [] s2 = new String [] {"a", "b", "c"}; string [] s = (string []) arrayutils.addall (s1); pour (int i = 0; i <lous {System.out.println (s [i]);} string str = arrayutils.tostring (s); str = str.substring (1, str.length () - 1); System.out.println (str + ">>" + str.length ());} // 2 intercepter la chaîne à partir de stringUtiles. si la chaîne est composée de nombres (0 ~ 9). Si tel est le cas, retournez vrai, mais cette méthode ne reconnaît pas les décimales et veuillez noter que stringUtils.isnumeric ("454534"); // return true // 4. Obtenez le nom de classe System.out.println (classutils.getShortClassName (test.class)); // obtient son nom de package System.out.println (classutils.getPackageName (test.class)); //5.NumberUtils System.out.println (NumberUtils.StringToint ("6")); // 6. Système de lettres et nombres aléatoires à cinq chiffres.out.println (RandomStringutils.Randomalphanumeric (5)); //7.StringeScapeles System.out.println (StringEscapeUtils.escapeHtml ("<html>")); // Le résultat de sortie est <html> System.out.println (StringEsCapeUls.EscapeJava ("String")); // 8.StringUtils, détermine s'il s'agit d'un SPACE SYSTEM.out.out.Trintln (StringUls.isblan "));//Separate the contents in the array by System.out.println(StringUtils.join(test,","));//Add characters to the right to make the total length of 6 System.out.println(StringUtils.rightPad("abc", 6, 'T'));//The first letter is capitalized System.out.println (StringUtils.Capitalize ("ABC")); // Supprime tous les espaces blancs d'une chaîne supprimer tous les espaces System.out.println (StringUtils.deletewhitespace ("ABC")); // supprime tous les espaces blanc "ba")); // désigne les deux caractères sur le système gauche.out.println (stringUtils.left ("ABC", 2)); System.out.println (NumberUtils.Stringtoint ("33"));14. La journalisation fournit une interface de journalisation Java, qui prend en compte à la fois légère et ne s'appuie pas sur des outils de mise en œuvre de journaux spécifiques.
import org.apache.commons.logging.log; import org.apache.commons.logging.logfactory; public class CommonLogtest {private static log = logfactory.getlog (CommonLogtest.Class); // log Imprimer public static void main (string [] args) {log.error ("error"); log.debug ("debug"); log.warn ("warn"); log.info ("info"); log.trace ("trace"); system.out.println (log.getClass ());}} 15. Validator est un système de vérification général, qui fournit un cadre de vérification des données pour le côté client et serveur.
Date de vérification
// Obtenir la vérification de la date DateValidator validator = datevalidator.getInstance (); // Vérifier / convertir la date de date alimentaire = validator.validate (Foostring, "dd / mm / yyyy"); if (foodate == null) {// L'erreur n'est pas un retour de date;}Vérification de l'expression
// Définissez le paramètre booléen caseSensitive = false; chaîne regex1 = "^ ([az] *) (?: // -) ([az] *) * $" String regex2 = "^ ([az] *) $"; String [] regexs = new String [] {regex1, regex1}; // Créer un validator regexvalidator = newdator = nouveau RegexValidator (regexs, caseSensitive); // Verify returns boolean boolean valid = validator.isvalid ("abc-def"); // vérifie les renvoie la chaîne Result = validator.validate ("ABC-def"); // Verify renvoie la chaîne de tableUtiliser la vérification dans les fichiers de configuration
<form-validation> <lobal> <validator name = "requise" classname = "org.apache.commons.validator.testvalidator" method = "validaterequure" methodparams = "java.lang.object, org.apache.commons.validator.field" /> </loge> <formset> <form-validation> <lobal> <validator name = "requise" classname = "org.apache.commons.validator.testvalidator" method = "validaterequired" methodparams = "java.lang.object, org.apache.commons. DepEnd = "requis"> <arg0 key = "nameform.firstname.displayname" /> </ field> <field propriété = "lastName" Deprend = "required"> <arg0 key = "nameform.lastName.displayName" /> </ formset> </ form-validation>
Classe de vérification
Excellent à partir d'org.apache.commons.validator.RequiredNameTest // Chargez le fichier de configuration de vérification InputStream dans = this.getClass (). GetResourceSstream ("Validator-Name-Required.xml"); ValidatorResources Resources = nouveau validatorResources (in); // c'est un bean créé par moi-même. J'ai omis name name = new name (); validator validator = new Validator (Resources, "nameform"); // définir le paramètre validator.setParameter (validator.bean_param, name); map Results = null; // Verify Results = validator.valida (); if (résultat} Else {/ FirstName ") == Null) {// Very errors = ((entier) results.get ("FirstName")). IntValue ();}Résumer
Ce qui précède est toute l'explication détaillée du code de jeu d'outils Apache Commons dans cet article, j'espère que cela sera utile à tout le monde. Les amis intéressés peuvent continuer à se référer à d'autres sujets connexes sur ce site. S'il y a des lacunes, veuillez laisser un message pour le signaler. Merci vos amis pour votre soutien pour ce site!