当前位置: 首页 > 编程笔记 >

SSH框架网上商城项目第22战之银行图标以及支付页面显示

萧懿轩
2023-03-14
本文向大家介绍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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。

 类似资料:
  • 本文向大家介绍SSH框架网上商城项目第27战之申请域名空间和项目部署及发布,包括了SSH框架网上商城项目第27战之申请域名空间和项目部署及发布的使用技巧和注意事项,需要的朋友参考一下   前面陆陆续续的完成了网上商城的一些基本功能,虽然还有很多地方有待完善,但是不影响项目的部署和发布,我们可以先来玩一把,这一节主要介绍下域名空间的申请以及项目的部署和发布流程。 1. 域名空间的申请   作为一个伟

  • 本文向大家介绍SSH框架网上商城项目第5战之商品类别级联查询和分页功能,包括了SSH框架网上商城项目第5战之商品类别级联查询和分页功能的使用技巧和注意事项,需要的朋友参考一下 上文我们完成了EasyUI菜单的实现,点击这里查看,这一节我们主要来写一下CategoryServiceImpl实现类,完成数据库的级联查询。一般项目从后往前做,先做service(我们没有抽取Dao,最后再抽取),做完了再

  • 本文向大家介绍SSH框架网上商城项目第11战之查询和删除商品功能实现,包括了SSH框架网上商城项目第11战之查询和删除商品功能实现的使用技巧和注意事项,需要的朋友参考一下 在第8节我们完成了查询和删除商品类别的功能,那么现在实现查询和删除商品的功能就很好做了,原理和第8节一模一样,只是修改一些参数,比如请求不同的action等。由于查询和删除商品不需要弹出新的UI窗口,所以我们只要完成完成quer

  • 本文向大家介绍SSH框架网上商城项目第8战之查询和删除商品类别功能实现,包括了SSH框架网上商城项目第8战之查询和删除商品类别功能实现的使用技巧和注意事项,需要的朋友参考一下 上一节我们完成了使用DataGrid显示所有商品信息,这节我们开始添加几个功能:添加、更新、删除和查询。首先我们实现下前台的显示,然后再做后台获取数据。 1. 添加、更新、删除和查询功能的前台实现 DataGrid控件里有个

  • 本文向大家介绍javaweb实战之商城项目开发(一),包括了javaweb实战之商城项目开发(一)的使用技巧和注意事项,需要的朋友参考一下 一.项目功能结构 1.功能 2.实体 3.对应sql语句 二.项目准备 1.实体类实现 分别建立dao,filter,model,util的包,并在model中实现实体类,这里以User.java为例. 注意对于数据库中外键,比如adress表中有外键user

  • 本文向大家介绍java网上商城项目第1篇之用户注册模块,包括了java网上商城项目第1篇之用户注册模块的使用技巧和注意事项,需要的朋友参考一下 本文为大家讲解了商城项目用户注册模块,供大家参考,先看看效果图: 1.前台JS校验:  事件触发: onsubmit=”checkForm()” 2.使用AJAX完成异步用户名是否存在校验 ①事件触发:onblur=”checkUserName()” ②A

  • 本文向大家介绍php实现的支付宝网页支付功能示例【基于TP5框架】,包括了php实现的支付宝网页支付功能示例【基于TP5框架】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php实现的支付宝网页支付功能。分享给大家供大家参考,具体如下: 1.提交支付请求 2.异步回调支付宝参数认证 3.同步回调页面跳转处理  同步只是做一个跳转处理 不要写任何数据处理 更多关于thinkPHP相关内容感

  • 本文向大家介绍java商城项目实战之购物车功能实现,包括了java商城项目实战之购物车功能实现的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java实现购物车功能的具体代码,供大家参考,具体内容如下 1 需要实现 1、实现淘淘商城的购物车功能 2 购物车功能 2.1 功能说明 1、商品加入购物车时,不是必须要求登录。京东不需要登录,淘宝需要登录。各有好处。 2、计算购物车中商品的总