bboss oreach循环嵌套遍历map
foreach循环嵌套遍历map
foreach嵌套dsl脚本定义
<property name="dynamicInnerDsl">
        <![CDATA[{ ## 最多返回1000条记录
            size: #[size],
            "query": {
                "bool": {
                    "must": [
                    #set($needComma = false)
                    #foreach($condition in $conditions.entrySet())
                        #foreach($item in $condition.value.entrySet())
                        #if($needComma), #else #set($needComma = true) #end
                        {
                            "$condition.key": {
                                "$item.key": #[conditions[$condition.key][$item.key],serialJson=true]
                            }
                        }
                        #end
                    #end
                    ]
                }
            }
        }]]>
    </property>
传递参数和解析上述dsl的java方法代码
@Test
	public void dynamicInnerDsl(){
		Map conditions = new HashMap<String,Map<String,Object>>();
		Map<String,Object> term = new HashMap<String, Object>();
		term.put("terma","tavalue");
		term.put("termb","tbvalue");
		term.put("termc","tcvalue");
		conditions.put("term",term);
Map params = new HashMap();
		params.put("conditions",conditions);
		params.put("size",1000);
		//加载配置文件中的dsl信息,解析dsl语句dynamicInnerDsl
		ESUtil esUtil = ESUtil.getInstance("esmapper/dsl.xml");
		String parseResult = ESTemplateHelper.evalTemplate(esUtil,"dynamicInnerDsl",params);
		//打印解析结果
		System.out.println(parseResult);
}
运行上述代码打印出来的实际dsl
{
    "size": 1000,
    "query": {
        "bool": {
            "must": [
{
                    "term": {
                        "termb": "tbvalue"
                    }
                },
                {
                    "term": {
                        "termc": "tcvalue"
                    }
                },
                {
                    "term": {
                        "terma": "tavalue"
                    }
                }
            ]
        }
    }
}
bboss oreach循环嵌套遍历map的更多相关文章
- 【转】python3 内循环中遍历map,遍历一遍后再次进入内循环,map为空
		今天在使用python map的过程中,发现了一个奇怪问题,map遍历完成后,再次访问map,发现map为空了,特记录下来,以备日后查看. 如下代码,期望的结果是每次从外循环进入内循环,map都从头开 ... 
- 【freemaker】之文本,html文本,去除空格,字母大小写,循环数组,字符串截取,map取值,遍历map
		测试代码 @Test public void test06(){ try { root.put("emp", "<span color='red'>你好张三& ... 
- 嵌套遍历<s:iterator>map=new TreeMap(string,Map(string,User))
		//嵌套遍历,先给外层的map(假设是放在root中的,如果放在context的map中,要加#)取个别名,放到Actioncontext中 <s:iterator value="ma ... 
- java中遍历MAP,嵌套map的几种方法
		java中遍历MAP的几种方法 Map<String,String> map=new HashMap<String,String>(); map.put("us ... 
- python利用for..in遍历,while循环嵌套编译九九乘法表的几种模式
		运用for....in...遍历的四种方向的九九乘法表: 左下角: import sysfor i in range(1,10): for j in range(1,i+1): sys.stdout. ... 
- JS中的for....in循环 和 for ...of循环以及iterable遍历Map和Set
		for循环的一个变体是for ... in循环,它可以把一个对象的所有属性依次循环出来: var o = { name: 'Jack', age: 20, city: 'Beijing' }; for ... 
- js中数组的循环与遍历forEach,map
		对于前端的循环遍历我们知道有 针对js数组的forEach().map().filter().reduce()方法 针对js对象的for/in语句(for/in也能遍历数组,但不推荐) 针对jq数组/ ... 
- Map 嵌套存储Map
		import java.util.HashMap;import java.util.Iterator;import java.util.Set;import java.util.Map.Entry; ... 
- 遍历map的四种方法
		方法一 在for-each循环中使用entries来遍历这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用.注意:for-each循环在Java 5中被引入所以该方法只能应用于j ... 
随机推荐
- .NET 下 模拟数组越界
			前面一篇文章提到过 数组越界行为,虽然编译器为我们做了大量的检查工作让我们避免这些错误. 但是我觉得还是有必要模拟一下数组越界,感受一下这个错误. 那么对于.NET来说我们怎么来模拟数组越界呢? 一. ... 
- React教程(一) React介绍与搭建
			React的介绍: React来自于Facebook公司的开源项目 React 可以开发单页面应用 spa(单页面应用) react 组件化模块化 开发模式 React通过对DOM的模拟(虚拟dom) ... 
- expect实现自动交互由浅入深
			expect实现自动交互由浅入深 作为运维人员可以通过Shell可以实现简单的控制流功能,如:循环.判断等.但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet ... 
- DensityUtil【尺寸转换工具类(px、dp互相转换)】
			版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 用于项目中dp.px.sp之间的转换以及指定缩放值下的转换. 效果图 暂不需要 代码分析 常用的方法是px2dip.dip2px: ... 
- TabTopAutoTextSizeLayout【自定义文字字号区域(动态选项卡数据且可滑动)】
			版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 自定义顶部选项卡布局LinearLayout类,实现可滑动效果.[实际情况中建议使用RecyclerView] 对<TabTo ... 
- 通过Jenkins定期清除为None的镜像
			在代码持续交付过程中,依靠Jenkins生产Docker镜像时,会生成许多的名为None的中间镜像,这些镜像在整个项目生产过程完毕后意义不大,还占着空间,需要定期清理,通过手动方式实在是繁琐,也就有了 ... 
- vue项目首屏加载优化实战
			问题 单页面应用的一个问题就是首页加载东西过多,加载时间过长.特别在移动端,单页面应用的首屏加载优化更是绕不开的话题.下面我会写出我在项目中做的一些优化,希望大家能够相互讨论,共同进步. 我的项目vu ... 
- 一篇不一样的docker原理解析
			转自:https://zhuanlan.zhihu.com/p/22382728 https://zhuanlan.zhihu.com/p/22403015 在学习docker的过程中,我发现目前do ... 
- javascript中的typeof和类型判断
			typeof ECMAScript 有 5 种原始类型(primitive type),即 Undefined.Null.Boolean.Number 和 String.我们都知道可以使用typeof ... 
- c#中如何使用到模糊查询
			c#中如何使用到模糊查询,先举个最简单实用的例子,可在vs控制台应用程序中输出: 定义实体类: public class Student { public int ... 
