一,前台数据

 $.ajax({
         url: '/intra/coe/order/ploadTable.htm',
         type: 'POST',
         dataType: 'json',

data: {keyId:$("#key_keyId").val(),beanName:'cpAssetsModify',},

关键注意这个url

二,到后台的代码

(会默认的找到这个index方法,配置文件设置的)

 @SuppressWarnings("unchecked")
     public void index(HttpServletRequest request, HttpServletResponse response) {

         String keyId = request.getParameter("keyId");

         String beanName = request.getParameter("beanName");

         String tableHead = request.getParameter("tableHead");

         String tableName = request.getParameter("tableName");

         LoadTableService loadTableService = ApplicationContext.getBean(beanName);

         List<Map<String, Object>> headLst = getTableHead(tableHead);
         if(headLst==null||headLst.size()==0){
             headLst = loadTableService.getHeadList(keyId);
         }
         Map<String, Object> tableInfo = new HashMap<String, Object>();
         tableInfo.put("tableName", tableName);
         List<Map<String, Object>> bodyLst = (List<Map<String, Object>>) loadTableService.getBodyList(keyId,tableInfo);

上面的

ApplicationContext.getBean(beanName);
会把前台获取的这个bean去配置文件找,注意这个是application容器,所以就会去所有的已经加载的xml文件里面去找,包括jar包里面的xml文件

会找到下面的配置文件
 <bean id="cpAssetsModify"
              class=" com.bill99.seashell.boss.appcontroller.intra.product.AssetsCPModifyControler">
         <property name="methodNameResolver">
             <ref bean="paramResolver" />
         </property>

         <property name="merchantAccountService" ref="merchantAccountService"/>
         <property name="merchantInfoService" ref="merchantInfoService"/>
         <property name="workorderDetailService" ref="workorderDetailService"/>
         <property name="dynamicBuildProductClient" ref="dynamicBuildProductClient"/>
     </bean>

这个时候返会的就是

AssetsCPModifyControler这个类的一个代理对象,注意上面的index方法是公共的,但是这个时候假如把beanname为cpAssetsModify传过来找到对应的类AssetsCPModifyControler
loadTableService.getBodyList(keyId,tableInfo);实质上就是
AssetsCPModifyControler.getBodyList(keyId,tableInfo)了。

三,接口及实现类

     public List<Map<String, Object>> getBodyList(String keyId,Map<String, Object> tableInfo);

上面的就是接口了。

 public class AssetsCPModifyControler extends IntraProductBaseControler implements LoadTableService{
 @Override
     public List<Map<String, Object>> getBodyList(String keyId,Map<String, Object> tableInfo) {
         List<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
         WorkorderDetail wd = workorderDetailService.findWorkorderDetailById(keyId);

         String jsonStr = wd.getProductParam();
         if(!StringUtil.isEmpty(jsonStr)){
             try
             {
                 Map<String, Object> productMap = JsonUtils.json2Map(jsonStr);
                 if(productMap.get("productList") != null){
                     List<Map<String,Object>> productList = (List)productMap.get("productList");
                     //获得cp下面的终端
                     getAddTerminals(resultList,productList);
                     //获得变更的终端 和 资产下面的终端
                     getUpdateTerminals(resultList, productList);
                     int terminalNo=1;
                     for (Map<String, Object> terminalMap : resultList) {
                         terminalMap.put("terminalNo", terminalNo);
                         terminalNo++;
                     }
                 }
             } catch (Exception e) {
                 logger.error("json2Map异常", e);
             }
         }
         return resultList;
     }

这个是实现类,在这就可以操作了。

以上就是通过

ApplicationContext.getBean(beanName)
动态的加载的一种方式。

通过ApplicationContext.getBean(beanName)动态加载数据。的更多相关文章

  1. AppCan学习笔记----关闭页面listview动态加载数据

    AppCan页面关闭 AppCan 的页面是由两个HTML组成,如果要完全关闭的话需要在主HTML eg.index.html中关闭,关闭方法:appcan.window.close(-1); 管道 ...

  2. [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件

    页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...

  3. 微信小程序(五) 利用模板动态加载数据

    利用模板动态加载数据,其实是对上一节静态数据替换成动态数据:

  4. mui 动态加载数据出现的问题处理 (silder轮播组件 indexedList索引列表 下拉刷新不能继续加载数据)

    mui-slider 问题:动态给mui的图片轮播添加图片,轮播不滚动. 解决:最后把滚动轮播图片的mui(".mui-slider").slider({interval: 300 ...

  5. ASP.NET MVC动态加载数据

    ASP.NET MVC动态加载数据,一般的做法是使用$.each方法来循环产生tabel: 你可以在html时先写下非动态的部分:  Source Code 上图中,有一行代码: <tbody ...

  6. js实现滚动条来动态加载数据

    主要angular2+es6 data:Array<any> //展示的数据 allData:Array<any> //全部的数据 size:number = 10 //每次动 ...

  7. js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的

    js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...

  8. js动态加载数据并合并单元格

    js动态加载数据合并单元格, 代码如下所示,可复制直接运行: <!DOCTYPE HTML> <html lang="en-US"> <head> ...

  9. 爬虫--selenuim和phantonJs处理网页动态加载数据的爬取

    1.谷歌浏览器的使用 下载谷歌浏览器 安装谷歌访问助手 终于用上谷歌浏览器了.....激动 问题:处理页面动态加载数据的爬取 -1.selenium -2.phantomJs 1.selenium 二 ...

随机推荐

  1. BZOJ 1004: [HNOI2008]Cards [Polya 生成函数DP]

    传送门 题意:三种颜色,规定使用每种颜色次数$r,g,b$,给出一个置换群,求多少种不等价着色 $m \le 60,\ r,g,b \le 20$ 咦,规定次数? <组合数学>上不是有生成 ...

  2. Django搭建博客网站(一)

    Django搭建自己的博客网站(一) 简介 这个系列主要是通过使用Django这个python web框架实现一个简单的个人博客网站.对Django有疑问可以上Django官网查文档. 功能 后台管理 ...

  3. 解决PhpStorm卡顿的问题

    以前的开发一直使用phpstorm.可谓是情有独钟,但是发现随着开发phpStorm逐渐变得卡顿,也试过其他的编译器,但是都感觉没有PhpSrom好用,网上百度了一下,看到不一样的回答.只要修改两个J ...

  4. 七、Selenium与phantomJS----------动态页面模拟点击、网站模拟登录

    每天一个小实例1(动态页面模拟点击,并爬取你想搜索的职位信息) from selenium import webdriver from bs4 import BeautifulSoup # 调用环境变 ...

  5. elasticsearch2.3.3安装

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 作者原来搭建的环境是0.95版本 现在升级到2.3.3版本, ...

  6. C/C++语言简介之运算符

    比较特别的是,比特右移(>>)运算符可以是算术(左端补最高有效位)或是逻辑(左端补 0)位移.例如,将 11100011 右移 3 比特,算术右移后成为 11111100,逻辑右移则为 0 ...

  7. Thinkpad USB 经典键盘使用体验

    先上图,这就是一个键盘,不是笔记本电脑. 优点: 1. 键盘完胜各类巧克力式键盘. 2. 小红点和老thinkpad 上的小红点一样好用. 3. ESC 和Delete 放大后,盲摸很方便. 缺点: ...

  8. 使用Netbeans内置的Git工具

    在 NetBeans IDE 中使用 Git 支持 NetBeans IDE 为 Git 版本控制客户端提供支持.通过利用 IDE 的 Git 支持,您可以从 IDE 内的项目中直接执行版本控制任务. ...

  9. DLL文件修复

    当你在Windows计算机中安装非操作系统的软件时,往往会覆盖或改写系统共享文件, 如动态链接库(.dll文件)和可执行文件(.exe文件). * 对于Windows系统来说,当用户操作不当(如非正常 ...

  10. 在linux ubuntu下搭建深度学习/机器学习开发环境

    一.安装Anaconda 1.下载 下载地址为:https://www.anaconda.com/download/#linux 2.安装anaconda,执行命令: bash ~/Downloads ...