`
jueyue
  • 浏览: 195814 次
社区版块
存档分类
最新评论

为什么jeecg没有用a.b而用了a_b

 
阅读更多
   说实话,我也是a.b的坚定用户者,我自己也为此花费了不少功夫。但是我发现我一直都没有问为什么用_?
而只是问为什么不用 .  之前还可笑的改了源码支持了 . 这种取值方式 直到昨天,写了一个拼装json的代码
以为以前jeecg因为json的原因而不使用的,可是花了一个晚上,自己改了toJson这个方法可以返回嵌套对象了,but,but,我差改了之后easyui完全挂了,a.b这种值竟然没有任何作用
才想起,可能是easyui的原因,是easyui不支持a.b这种取值方式,而不是jeecg不想支持,今天网上百度了下
easyui源码,虽然是1.0.2版本,但是这也是基础的。发现
尼玛obj[field]可以取值才怪呢,我差,easyui真是个人才,可怜我两个晚上
ps2:自己昨天写的tojson 
/**
	 * 循环LIST对象拼接EASYUI格式的JSON数据
	 * @param fields
	 * @param total
	 * @param list
         * 可以避免掉hibernate的延长加载
	 */
	public static String listtojson(String[] fields, int total, List list,String[] footers) throws Exception {
		StringBuilder sb = new StringBuilder();
		sb.append("{\"total\":" + total + ",\"rows\":[");
		Map<String,Object> fieldMap = getFieldMap(fields);
		for (int j = 0; j < list.size(); j++) {
			sb.append("{\"state\":\"closed\",");
			toJson(fieldMap,list.get(j),sb);
			if (j != list.size() - 1) {
				sb.append("},");
			} else {
				sb.append("}");
			}
		}
		sb.append("]");
		Object value;
		String footer;
		if(footers!=null){
			sb.append(",\'footer\':[{\'name\':\'合计\',");
			for(int i = 0;i<footers.length;i++){
				footer = footers[i];
				String footerFiled = footer.split(":")[0];
				if(footer.split(":").length==2){
					value = footer.split(":")[1];
				}else{
					value = TagUtil.getTotalValue(footerFiled,list);
				}
				sb.append("\'"+footerFiled+"\':\'"+value+"\'");
				if(i!=footers.length-1){
					sb.append(",");
				}
			}
			sb.append("}]");
		}
		sb.append("}");
		System.out.println(sb.toString());
		return sb.toString();
	}
	
	
	private static void toJson (Map<String,Object> fieldMap,Object obj,StringBuilder sb){
		Iterator<String> it = fieldMap.keySet().iterator();
		Object field,value;
		String key;
		String [] arr;
		while(it.hasNext()){
			key = it.next();
			field = fieldMap.get(key);
			if(field instanceof Map){
				sb.append("\""+key+"\":{");
				toJson((Map<String,Object>)field,obj,sb);
				sb.append("}");
			}else if(field instanceof String[]){
				arr = (String[])field;
				value = TagUtil.fieldNametoValues(arr[0], obj);
				sb.append("\"" + arr[1] + "\"" + ":\"" + value + "\"");
			}else{
				value = TagUtil.fieldNametoValues((String)field, obj);
				sb.append("\"" + field + "\"" + ":\"" + value + "\"");
			}
			if(it.hasNext()){
				sb.append(",");
			}
		}
	}
	/**
	 * 组装对象,把一个对象的元素放到一起
	 * @param fields
	 * @return
	 */
	private static Map<String, Object> getFieldMap(String[] fields) {
		Map<String,Object> results = new HashMap<String, Object>();
		for(int i = 0;i<fields.length;i++){
			if(fields[i].indexOf(".")>0){
				judgeFields(results,fields[i].split("\\."),fields[i]);//下面的多属性字段
			}else{
				results.put(fields[i], fields[i]);//这个对象的直接字段
			}
		}
		return results;
	}
	
	private static void judgeFields(Map<String, Object> results, String[] param,String field) {
		Map<String,Object> temp;
		for(int i = 0;i<param.length;i++){
			if(results.containsKey(param[i])){
				results = (Map<String,Object>)results.get(param[i]);
			}else{
				if(i==param.length-1){
					results.put(param[i],new String[]{field,param[i]});
				}else{
					temp = new HashMap<String, Object>();
					results.put(param[i],temp);
					results = temp;
				}
			}
		}
	}
 
0
0
分享到:
评论

相关推荐

    jeecg-jeecg-master.zip_jeecg_jeecg master_短信

    总结,Jeecg-jeecg-master.zip提供的源码不仅展示了Jeecg框架的代码生成器是如何工作的,也揭示了如何集成并使用短信服务。对于Java开发者,尤其是初次接触此类项目的开发者来说,这是一个宝贵的资源,能够帮助他们...

    jeecg-jeecg3.5.zip_jeecg_tsonline

    Jeecg-jeecg3.5.zip是一款基于Jeecg框架的代码生成器的源码集合,旨在为开发者提供一个高效、便捷的代码生成工具,助力快速构建企业级应用。Jeecg框架是一个开源的Java EE轻量级开发平台,它融合了多种优秀的设计...

    jeecg.zip_jeecg_jeecg下载_jeecg框架案例_jeecg框架讨论_jeecg源码

    在这个目录下,可能有关于Jeecg框架各个模块的说明、接口使用方法、数据库设计等内容,对于学习和使用Jeecg非常有帮助。 5. **src**:源代码目录,这是项目的主要代码存放位置。在Jeecg框架中,src目录可能分为`...

    jeecg_framework_v2.1.0(20131023)

    jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_framework_v2.1.0(20131023)jeecg_...

    jeecg_3.7.1_online主子表列表风格模板升级包

    jeecg_3.7.1_online主子表列表风格模板升级包jeecg_3.7.1_online主子表列表风格模板升级包jeecg_3.7.1_online主子表列表风格模板升级包jeecg_3.7.1_online主子表列表风格模板升级包jeecg_3.7.1_online主子表列表风格...

    jeecg.rar_jeecg

    《Jeecg 开发平台深度解析与应用指南》 Jeecg是一款强大的企业级开发平台,它集成了众多优秀的设计理念和技术,旨在提高...而详尽的二次开发手册则为开发者提供了有力的支持,使得Jeecg成为企业级项目开发的理想选择。

    jeecg开源框架源码.zip

    这个名为"jeecg开源框架源码.zip"的压缩包包含了Jeecg框架的核心源代码,主要文件夹为"jeecg-master",这通常是项目的主要根目录。 Jeecg框架的设计理念是“简单、高效”,旨在降低企业级应用的开发复杂度,提高...

    jeecg-framework_v2.1.2.beta-20130225.zip.zip

    jeecg-framework_v2.1.2.beta-20130225.zip.zipjeecg-framework_v2.1.2.beta-20130225.zip.zipjeecg-framework_v2.1.2.beta-20130225.zip.zipjeecg-framework_v2.1.2.beta-20130225.zip.zipjeecg-framework_v2.1.2....

    jeecg-boot-master_jeecg_springboot+vue_jeecg-boot_missing5uu_JEE

    jeecg-boot-master_jeecg_springboot+vue_jeecg-boot_missing5uu_JEE

    JEECG-BOOT 企业级快速平台产品介绍PPT-20200327_jeecg-boot_jeecg_

    **Jeecg-Boot 企业级快速开发平台详解** Jeecg-Boot 是一款基于Java技术的企业级快速开发框架,其核心目标是提高开发效率,降低项目开发成本。这款平台结合了代码生成器、前后端分离、微服务架构等多种现代化开发...

    jeecg_zhangdaiscott.tar.gz

    JEECG是一款基于代码生成器的J2EE快速开发平台,开源界“小普元”超越传统商业企业级开发平台。引领新的开发模式(Online Coding模式(自定义表单) - &gt; 代码生成器模式 - &gt; 手工MERGE智能开发), 可以帮助解决Java项目...

    Jeecg集成activiti.docx

    Jeecg集成activiti.docx Jeecg集成activiti是一个关于如何将activiti集成到Jeecg平台上的指南。下面是从给定的文件中提取的相关知识点: 1. activiti项目结构:activiti项目是一个Maven项目,包含了数据库文件,...

    jeecgboot带online报表版本.zip_gentlei89_jeecgboot_jeecgboot online_je

    《JeecgBoot在线报表版本详解》 JeecgBoot是一款基于Java开发的企业级快速开发框架,由国内知名开源团队Gentlei89倾力打造,致力于提供高效、易用的开发工具,以降低企业开发成本,提升开发效率。本篇文章将深入...

    Jeecg数据库初始化.sql

    Jeecg项目初始化搭配数据库,该文件包含了初始化所需表结构,保证代码下载后即可使用。注意:Mysql专用

    JEECG图表配置说明.docx

    JEECG 图表配置详解 JEECG 图表配置是指通过在线配置生成图形报表页面,不需要编写代码。该配置使用 highcharts.js 实现,可以运行在任何现代浏览器,包括移动终端以及 IE6。目前支持曲线图、柱状图等基础报表。 ...

    JEECG开发指南大全

    代码生成器使用规则 ..................................................................................... 38 7.6.1. 建表规范 .............................................................................

    基于maven的jeecg_V2

    **基于Maven的Jeecg V2框架...总之,Jeecg V2结合Maven提供了一个高效的企业级开发平台,通过学习和实践,开发者不仅可以掌握Jeecg V2的使用,还能深入了解Java Web开发的各个方面,为未来的职业发展打下坚实的基础。

    jeecg-boot.zip

    本文将围绕JeecgBoot项目的特性、使用方法以及源码结构展开详细讨论。 一、JeecgBoot项目简介 JeecgBoot是基于代码生成器的智能快速开发平台,它整合了SpringBoot、MyBatisPlus、Shiro、JWT、Vue.js等热门框架和...

    JEECG v3.3.1.beta开发手册

    v3.3.1.beta版本的开发手册是针对该版本特性和功能的详细指南,帮助开发者更好地理解和使用JEECG的各项功能。 1. **JEECG Online Coding开发手册v3.3.pdf** 这份文档主要涵盖了JEECG的在线编码功能,这是一个强大...

Global site tag (gtag.js) - Google Analytics