SSH框架網上商城項目第22戰之銀行圖標和付出頁面顯示。本站提示廣大學習愛好者:(SSH框架網上商城項目第22戰之銀行圖標和付出頁面顯示)文章只能為提供參考,不一定能成為您想要的結果。以下是SSH框架網上商城項目第22戰之銀行圖標和付出頁面顯示正文
從上一節的小demo中我們弄清晰了若何跟易寶對接和易寶的付出流程。這一節我們來做一下付出頁面和在頁面中導入銀行圖標。
1. 存儲銀行圖標
銀行圖標普通不會老是去加載,由於這些器械是逝世的,沒需要每次進入付出頁面就去加載銀行圖標,如許機能會遭到必定的影響。這讓我們聯想到了之前的加載首頁數據了,其實跟誰人事理是一樣的,我們可以在項目啟動的時刻就將銀行圖標資本加載到application中,前面用到了就直接在application域中取就好了。所以跟本來一樣,我們在監聽器中加載銀行圖標。
銀行圖標易寶官方會供給給我們,那末我們須要做的就是將這些圖標放到工程下的某個文件夾裡,我是放在了WebRoot/files/bankImages中,這些圖標的稱號都嚴厲依據易寶官方請求的名字定名,就像上一節中看到的,工行就定名為ICBC-NET.gif。
加載圖標的思緒是以下:
1)起首從指定目次中獲得一切圖標的名字,而且過濾失落不須要的文件,這個過濾很主要,由於假如有一些過剩的文件或許隱蔽文件的話,我們都獲得到了,然後前台顯示的時刻就會湧現一些奇異的器械,所以我們只需有效的圖標。
2)其次我們拿到圖標稱號後將它們放到數組或許聚集中,然後把數組或聚集存到application域中
很顯著,第二步是在監聽器中完成的,第一步我們可以本身新寫一個對象類,也能夠在我們之前寫過的fileUploadUtil類中完成。
1.1 獲得圖標稱號
我們在fileUploadUtil中添加獲得圖標稱號的代碼:
@Component("fileUpload") public class FileUploadUtil implements FileUpload { //省略本來的代碼…… //@Value表現去beans.xml文件中找id="prop"的bean,它是經由過程注解的方法讀取properties設置裝備擺設文件的,然後去響應的設置裝備擺設文件中讀取 @Value("#{prop.basePath+prop.bankImagePath}") private String bankImagePath; public String[] getBankImage() { String[] list = new File(bankImagePath).list(new FilenameFilter() { //測試指定文件能否應當包括在某一文件列表中 @Override public boolean accept(File dir, String name) { System.out.println("dir:" + dir + ",name:" + name); //經由過程後綴名來完成文件的過濾後果 //前往真就放到list中,前往假就過濾失落 return name.endsWith(".gif"); } }); return list; }
我們加載的是public.properties設置裝備擺設文件,看一下設置裝備擺設文件中的內容:
basePath=E\:\\web\\apache-tomcat-8.0.26\\webapps\\E_shop filePath=\\files bankImagePath=\\files\\bankImages
之所以有個basePath是為了便於擴大,並且今後修正的話basePath不須要動。我們持續看下面誰人辦法,new File(path).list() 辦法是獲得途徑中一切文件名,然則new File(path).list(FilenameFilter filter) 帶有過濾功效,可以過濾失落不想要的文件,只前往想要的文件到數組中。FilenameFilter 接口中只要一個accept辦法,所以我們可以用外部類來完成,在外面斷定 一下能否是.gif後綴的文件便可。
1.2 將圖標稱號存入application域
上面我們在監聽器中將方才保留圖標稱號的數組存儲到application域中,這些辦法之前都有引見過,就不多做說明了,直接看代碼:
//@Component //監聽器是web層的組件,它是tomcat實例化的,不是Spring實例化的。不克不及放到Spring中 public class InitDataListener implements ServletContextListener { //省略其他代碼…… private ApplicationContext context = null; private FileUpload fileUpload = null; @Override public void contextInitialized(ServletContextEvent event) { context = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext()); //將存儲銀行圖片的數組放到application中,項目啟動的時刻加載 fileUpload = (FileUpload) context.getBean("fileUpload"); event.getServletContext().setAttribute("bankImageList", fileUpload.getBankImage()); } }
2. 付出頁面顯示
我們來看一下bank.jsp關於銀行圖標這一塊的代碼,以下:
還有一塊是顯示定單的相干信息的,從上面的代碼中也能夠看出,是從session中拿我們之前備份的定單信息,原信息在用戶確認定單跳到付出頁面時曾經燒毀了。
3. 測試一下後果
上面我們來測試一下付出頁面的顯示後果,以下:
好了,付出頁面顯示正常,上面要完成付出功效了,即上一節用servlet寫的誰人demo的功效,只不外如今放到Struts中,而且能夠要斟酌到一些其他的成績,下一節再寫吧。
原文鏈接:http://blog.csdn.net/eson_15/article/details/51452243
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐。