通过ApplicationContext.getBean(beanName)动态加载数据。
一,前台数据
$.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)动态加载数据。的更多相关文章
- AppCan学习笔记----关闭页面listview动态加载数据
AppCan页面关闭 AppCan 的页面是由两个HTML组成,如果要完全关闭的话需要在主HTML eg.index.html中关闭,关闭方法:appcan.window.close(-1); 管道 ...
- [JS前端开发] js/jquery控制页面动态加载数据 滑动滚动条自动加载事件
页面滚动动态加载数据,页面下拉自动加载内容 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样的效果:进入qq空间,向下拉动空 ...
- 微信小程序(五) 利用模板动态加载数据
利用模板动态加载数据,其实是对上一节静态数据替换成动态数据:
- mui 动态加载数据出现的问题处理 (silder轮播组件 indexedList索引列表 下拉刷新不能继续加载数据)
mui-slider 问题:动态给mui的图片轮播添加图片,轮播不滚动. 解决:最后把滚动轮播图片的mui(".mui-slider").slider({interval: 300 ...
- ASP.NET MVC动态加载数据
ASP.NET MVC动态加载数据,一般的做法是使用$.each方法来循环产生tabel: 你可以在html时先写下非动态的部分: Source Code 上图中,有一行代码: <tbody ...
- js实现滚动条来动态加载数据
主要angular2+es6 data:Array<any> //展示的数据 allData:Array<any> //全部的数据 size:number = 10 //每次动 ...
- js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的
js/jquery控制页面动态加载数据 滑动滚动条自动加载事件--转他人的 相信很多人都见过瀑布流图片布局,那些图片是动态加载出来的,效果很好,对服务器的压力相对来说也小了很多 有手机的相信都见过这样 ...
- js动态加载数据并合并单元格
js动态加载数据合并单元格, 代码如下所示,可复制直接运行: <!DOCTYPE HTML> <html lang="en-US"> <head> ...
- 爬虫--selenuim和phantonJs处理网页动态加载数据的爬取
1.谷歌浏览器的使用 下载谷歌浏览器 安装谷歌访问助手 终于用上谷歌浏览器了.....激动 问题:处理页面动态加载数据的爬取 -1.selenium -2.phantomJs 1.selenium 二 ...
随机推荐
- HDU 5996 dingyeye loves stone [阶梯Nim]
dingyeye喜欢和你玩石子游戏. dingyeye有一棵nn个节点的有根树,节点编号为00到n−1n−1,根为00号节点.游戏开始时,第ii个节点上有a[i]a[i]个石子.两位玩家轮流操作,每次 ...
- BZOJ 2342: [Shoi2011]双倍回文 [Manacher + set]
题意: 求最长子串使得它有四个相同的回文串SSSS相连组成 枚举中间x 找右边的中间y满足 y-r[y]<=x y<=x+r[x]/2 用个set维护 注意中间只能是# #include ...
- 数据分析之pandas教程-----概念篇
目录 1 pandas基本概念 1.1 pandas数据结构剖析 1.1.1 Series 1.1.2 DataFrame 1.1.3 索引 1.1.4 pandas基本操作 1.1.4. ...
- 设计模式之“Decorator”注疏#02
装饰模式在某种意义上来说也是挺原始的, 它首先需要一个你被装饰的基础类, 再来是需要一个基于这个基础类的原始包装器,可以看作是其它包装器的基础类 进而通过继承这个包装器,来构建出多个具有各自功能的特定 ...
- HDU1005 找规律 or 循环点 or 矩阵快速幂
http://acm.hdu.edu.cn/showproblem.php?pid=1005 1.一开始就注意到了n的数据范围 <=100 000 000,但是还是用普通的循环做的,自然TLE了 ...
- Matlab中图论工具箱的应用
Matlab图论工具箱的命令见表1 表1 matlab图论工具箱的相关命令 命令名 功能 graphallshortestpaths 求图中所有顶点对之间的最短距离 graphconncomp 找无 ...
- PHP判断SQL语句是否合法:mysqli_error()
假设现在有条update语句,有时候update语句正确,但是受影响的行数是0. 那么怎么判断这条SQL语句到底是否正确?使用 mysqli_error($Conn); create table us ...
- ansible实践4- 管理配置文件
生产环境中大多时候是需要管理配置文件的,安装软件包只是在初始化环境的时候用一下.下面我们来写个管理nginx配置文件的playbook mkdir -p /etc/ansible/nginx_c ...
- Jenkins gitlab vue,angular,react 自动化构建【原】
大致思路,(本篇主要讲vue ,当然了 angular react 也是一样配置) ,转发请注明原链接,谢谢 :) 1. 服务器上面配置jenkins (安装配置,不介绍) 2.新建item 自由风格 ...
- [原创]Oracle 12c的备份和恢复策略
Oracle 12c的备份和恢复策略(RMAN备份[开启归档/控制文件/数据文件/归档日志]): 备份策略: * 每半年做一个数据库的全备份(包括所有的数据和只读表空间) * 每周做一次零级备份 * ...