จากการสาธิตขนาดเล็กในส่วนก่อนหน้าเราหาวิธีเชื่อมต่อกับกระบวนการชำระเงินของ Yibao และ Yibao ในส่วนนี้ให้ทำหน้าชำระเงินและนำเข้าไอคอนธนาคารลงในหน้า
1. ไอคอนธนาคารร้านค้า
ไอคอนธนาคารโดยทั่วไปไม่ได้โหลดเสมอไปเพราะสิ่งเหล่านี้ตายไปแล้ว ไม่จำเป็นต้องโหลดไอคอนธนาคารทุกครั้งที่คุณเข้าสู่หน้าการชำระเงินเพื่อให้ประสิทธิภาพจะได้รับผลกระทบในระดับหนึ่ง สิ่งนี้ทำให้เรานึกถึงการโหลดข้อมูลหน้าแรกก่อนหน้านี้ ในความเป็นจริงมันเป็นเช่นเดียวกับที่ เราสามารถโหลดทรัพยากรไอคอนธนาคารลงในแอปพลิเคชันเมื่อโครงการเริ่มต้นขึ้น หลังจากนั้นก็สามารถใช้โดยตรงในโดเมนแอปพลิเคชัน เมื่อก่อนเราโหลดไอคอนธนาคารในผู้ฟัง
ไอคอนธนาคาร Yibao อย่างเป็นทางการจะให้เราดังนั้นสิ่งที่เราต้องทำคือการใส่ไอคอนเหล่านี้ไว้ในโฟลเดอร์ภายใต้โครงการ ฉันวางไว้ใน webroot/files/bankimages ชื่อของไอคอนเหล่านี้ได้รับการตั้งชื่ออย่างเคร่งครัดตามชื่อทางการที่ Yibao ต้องการ ดังที่เห็นในส่วนก่อนหน้า ICBC ตั้งชื่อมันว่า ICBC-NET.GIF
แนวคิดของการโหลดไอคอนมีดังนี้:
1) ก่อนอื่นรับชื่อของไอคอนทั้งหมดจากไดเรกทอรีที่ระบุและกรองไฟล์ที่ไม่จำเป็น การกรองนี้มีความสำคัญมากเพราะหากมีไฟล์พิเศษหรือไฟล์ที่ซ่อนอยู่เราทุกคนได้รับพวกเขาแล้วสิ่งแปลก ๆ บางอย่างจะปรากฏขึ้นเมื่อแผนกต้อนรับแสดงพวกเขาดังนั้นเราจึงมีไอคอนที่มีประโยชน์เท่านั้น
2) ประการที่สองหลังจากที่เราได้ชื่อไอคอนเราวางไว้ในอาร์เรย์หรือคอลเลกชันจากนั้นจัดเก็บอาร์เรย์หรือคอลเลกชันในฟิลด์แอปพลิเคชันมันชัดเจน ขั้นตอนที่สองถูกนำไปใช้ในผู้ฟัง ขั้นตอนแรกคือเราสามารถเขียนคลาสเครื่องมือใหม่ด้วยตนเองหรือเราสามารถกรอกได้ในคลาส fileuploadutil ที่เราเขียนไว้ก่อนหน้านี้
1.1 รับชื่อไอคอน
เราเพิ่มรหัสเพื่อรับชื่อไอคอนใน fileuploadutil:
@component ("fileupload") คลาสสาธารณะ FilePloadutil ใช้ fileupload {// ละเว้นรหัสต้นฉบับ ... //@value หมายถึงการค้นหาถั่วด้วย id = "prop" ในไฟล์ beans.xml มันอ่านไฟล์กำหนดค่าคุณสมบัติผ่านคำอธิบายประกอบจากนั้นอ่าน @Value ("#{prop.basepath+prop.bankimagepath}") สตริงส่วนตัว BankimagePath; สตริงสาธารณะ [] getBankImage () {string [] list = ไฟล์ใหม่ (bankimagepath) .list (filenamefilter ใหม่ () {// ทดสอบว่าไฟล์ที่ระบุควรรวมอยู่ในรายการไฟล์ @Override บูลีนยอมรับ (ไฟล์ชื่อ {system.out.println (" จริงและวางไว้ในรายการส่งคืน false และกรอง return name.endswith (". gif");}}); รายการคืน; -เรากำลังโหลดไฟล์การกำหนดค่า public.properties และดูเนื้อหาในไฟล์กำหนดค่า:
basepath = e/: //web//apache-tomcat-8.0.26//webapps//e_shopfilepath=//filesbankimagepath=//files//bankimages
เหตุผลสำหรับ basepath คือการอำนวยความสะดวกในการขยายตัวและ basepath ไม่จำเป็นต้องย้ายหากแก้ไขในอนาคต มาดูวิธีการข้างต้นต่อไป เมธอดไฟล์ใหม่ (พา ธ ) .List () คือการรับชื่อไฟล์ทั้งหมดในพา ธ แต่ไฟล์ใหม่ (พา ธ ). รายการ (ตัวกรอง filenameFilter) มีฟังก์ชั่นการกรองซึ่งสามารถกรองไฟล์ที่ไม่ต้องการและส่งคืนไฟล์ที่ต้องการลงในอาร์เรย์ มีวิธีการยอมรับเพียงวิธีเดียวในอินเทอร์เฟซ filenameFilter ดังนั้นเราสามารถใช้คลาสภายในเพื่อใช้งานและตัดสินว่าเป็นไฟล์ที่มี. GIF ต่อท้ายหรือไม่
1.2 บันทึกชื่อไอคอนลงในฟิลด์แอปพลิเคชัน
ด้านล่างเราจัดเก็บอาร์เรย์ของชื่อไอคอนที่เพิ่งบันทึกลงในฟิลด์แอปพลิเคชันในผู้ฟัง วิธีการเหล่านี้ได้รับการแนะนำมาก่อนดังนั้นฉันจะไม่อธิบายเพิ่มเติม ลองดูที่รหัส:
//@Component // Listener เป็นส่วนประกอบของ Web Layer มันเป็นอินสแตนซ์โดย Tomcat ไม่ใช่ฤดูใบไม้ผลิ ไม่สามารถนำไปใช้ในสปริงคลาสสาธารณะ initDatalistener ใช้ servletContextListener {// ละเว้นรหัสอื่น ... บริบทแอปพลิเคชันส่วนตัว = null; fileupload private fileupload = null; @Override เป็นโมฆะสาธารณะบริบท (เหตุการณ์ servletContextEvent) {context = webApplicationContextUtils.getWebapplicationContext (event.getServletContext ()); // ใส่อาร์เรย์ที่จัดเก็บรูปภาพธนาคารลงในแอปพลิเคชันและโหลด fileupload เมื่อโครงการเริ่มต้น = (fileupload) บริบท. getBean ("fileupload"); event.getServletContext (). setAttribute ("bankimageList", fileupload.getBankImage ()); -2. การแสดงหน้าการชำระเงิน
มาดูรหัสของ Bank.jsp เกี่ยวกับไอคอนธนาคารดังต่อไปนี้:
อีกชิ้นหนึ่งแสดงข้อมูลที่เกี่ยวข้องของคำสั่งซื้อ นอกจากนี้ยังสามารถเห็นได้จากรหัสด้านล่างที่เราใช้ข้อมูลการสั่งซื้อที่เราได้สำรองไว้ก่อนหน้านี้จากเซสชัน ข้อมูลดั้งเดิมถูกทำลายเมื่อผู้ใช้ยืนยันคำสั่งซื้อเพื่อข้ามไปยังหน้าการชำระเงิน
3. ทดสอบเอฟเฟกต์
ลองทดสอบเอฟเฟกต์การแสดงผลของหน้าการชำระเงินดังนี้:
โอเคหน้าการชำระเงินจะแสดงตามปกติ ฟังก์ชั่นการชำระเงินจะเสร็จสมบูรณ์ด้านล่างนั่นคือการสาธิตที่เขียนในส่วนก่อนหน้าโดยใช้ servlet อย่างไรก็ตามตอนนี้มันถูกวางไว้ใน struts และปัญหาอื่น ๆ อาจได้รับการพิจารณา มาเขียนในส่วนถัดไป
ลิงค์ดั้งเดิม: http://blog.csdn.net/eson_15/article/details/51452243
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น