À partir de la petite démo dans la section précédente, nous avons compris comment se connecter avec le processus de paiement de Yibao et Yibao. Dans cette section, faisons la page de paiement et importons les icônes bancaires dans la page.
1. Icône de la banque de magasin
Les icônes bancaires ne se chargent généralement pas toujours parce que ces choses sont mortes. Il n'est pas nécessaire de charger des icônes bancaires chaque fois que vous entrez la page de paiement, afin que les performances soient affectées dans une certaine mesure. Cela nous rappelle le chargement précédent des données de page d'accueil. En fait, c'est la même chose que cela. Nous pouvons charger la ressource de l'icône bancaire dans l'application lorsque le projet est démarré. Après cela, il peut être utilisé directement dans le domaine d'application. Donc, comme auparavant, nous chargeons l'icône bancaire dans l'auditeur.
L'icône de la banque Yibao vous fournira, donc ce que nous devons faire est de mettre ces icônes dans un dossier dans le cadre du projet. Je les ai placés dans webroot / fichiers / bankImages. Les noms de ces icônes sont strictement nommés selon les noms officiels requis par Yibao. Comme le montre la section précédente, ICBC l'a nommé icbc-net.gif.
L'idée de charger des icônes est la suivante:
1) Tout d'abord, obtenez les noms de toutes les icônes du répertoire spécifié et filtrez les fichiers inutiles. Ce filtrage est très important car s'il y a des fichiers supplémentaires ou des fichiers cachés, nous les avons tous obtenus, puis des choses étranges apparaîtront lorsque la réception les affiche, nous n'avons donc que des icônes utiles.
2) Deuxièmement, après avoir obtenu les noms d'icônes, nous les avons mis dans un tableau ou une collection, puis stockons le tableau ou la collection dans le champ d'application, il est évident. La deuxième étape est implémentée dans l'auditeur. La première étape est que nous pouvons écrire nous-mêmes une nouvelle classe d'outils, ou nous pouvons le compléter dans la classe FileUploadUtil que nous avons écrite auparavant.
1.1 Obtenez le nom de l'icône
Nous ajoutons le code pour obtenir le nom de l'icône dans FileuploadUtil:
@Component ("FileUpload") Classe publique FileuploadUtil implémente FileUpload {// omettre le code d'origine ... // @ valeur signifie rechercher les beans avec id = "prop" dans le fichier beans.xml. Il lit le fichier de configuration des propriétés via l'annotation, puis lit @Value ("# {prop.basepath + prop.bankimagePath}") String privé bankImagePath; public String [] getBankImage () {String [] list = new File (BankImagePath) .List (new FileNameFilter () {// Testez si le fichier spécifié doit être inclus dans une liste de fichiers @Override public booléen accepte (fichier dir, string name) {System.out.println ("DIR:" + DIR + ", name:" +); et mettez-le dans la liste, renvoyez FALSE et filtrez le nom de retour.endswith (". GIF");}}); Liste de retour; }Nous chargeons le fichier de configuration publique.properties et jetons un œil au contenu dans le fichier de configuration:
Basepath = e /: //web//apache-tomcat-8.0.26//webapps//e_shopfilepath=//filesbankimagepath=//files//bankimages
La raison d'un chemin de base est de faciliter l'expansion, et le chemin de base n'a pas besoin d'être déplacé s'il est modifié à l'avenir. Continuons à regarder la méthode ci-dessus. La méthode de nouveau fichier (chemin) .list () consiste à obtenir tous les noms de fichiers dans le chemin d'accès, mais un nouveau fichier (chemin) .List (filtre FileNameFilter) a une fonction de filtrage, qui peut filtrer les fichiers indésirables et ne renvoyer que les fichiers souhaités dans le tableau. Il n'y a qu'une seule méthode d'acceptation dans l'interface FileNameFilter, nous pouvons donc utiliser des classes internes pour l'implémenter et juger s'il s'agit d'un fichier avec .gif suffixe.
1.2 Enregistrer le nom d'icône dans le champ d'application
Ci-dessous, nous stockons la gamme de noms d'icônes qui viennent d'être enregistrés dans le champ d'application dans l'auditeur. Ces méthodes ont déjà été introduites, donc je ne les expliquerai pas davantage. Regardons simplement le code:
// @ composant // L'auditeur est un composant de la couche Web. Il est instancié par Tomcat, pas le printemps. Impossible de placer dans la classe publique de printemps initDatalistener implémente servletContextListener {// omettre d'autres codes ... Private ApplicationContext context = null; FileUpload Private Fileupload = NULL; @Override public void contextinitialialialialized (ServletContexTevent Event) {context = webApplicationContextUtils.getWebApplicationContext (event.getServletContext ()); // Mettez le tableau de stockage des images bancaires dans l'application et chargez Fileupload lorsque le projet démarre = (fileupload) context.getBean ("fileupload"); event.getServletContext (). setAttribute ("BankImageList", fileupload.getBankImage ()); }}2. Affichage de la page de paiement
Jetons un coup d'œil au code de Bank.jsp sur l'icône de la banque, comme suit:
Une autre pièce montre les informations pertinentes de la commande. On peut également voir à partir du code ci-dessous que nous avons pris les informations de commande que nous avions précédemment sauvegardées de la session. Les informations d'origine ont été détruites lorsque l'utilisateur a confirmé l'ordre de passer à la page de paiement.
3. Testez l'effet
Testons l'effet d'affichage de la page de paiement, comme suit:
D'accord, la page de paiement s'affiche normalement. La fonction de paiement doit être remplie ci-dessous, c'est-à-dire la démo écrite dans la section précédente à l'aide du servlet. Cependant, il est maintenant mis en entretoise et certains autres problèmes peuvent être pris en compte. Écrivons-le dans la section suivante.
Lien original: http://blog.csdn.net/eson_15/article/details/51452243
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.