@Test
public void testAssign() {
// <#assign epAmount=0><#list amount as amt>epAmount=epAmount+${amt}</#list>${epAmount}
//取list第一个直接[0];如果list里面放的Map,可以直接点属性
//函数前直接加问号即可,例如:?replace
//设置本地变量<#assign epAmount=0> ; 注意: 边量的计算是在变量符号里,且不需要美元取值符号,<>里都不需要再用${}取值 <#assign epAmount=epAmount+amt>
String template = "${date_startDate[0]?replace(\"-\",\"/\")}-${date_endDate[0]?replace(\"-\",\"/\")}期间,交易时间异常,<#assign epAmount=0><#list amount as amt><#assign epAmount=epAmount+amt></#list>合计${epAmount}元,<#assign epCount=0><#list count as cnt><#assign epCount=epCount+cnt></#list>${epCount}笔。";
Map<String,Object> freeParaMap = new HashMap<String,Object>();
//交易时间
List<String> date_startDate=new ArrayList<String>();
date_startDate.add("2018-08-30");
freeParaMap.put("date_startDate", date_startDate);
List<String> date_endDate=new ArrayList<String>();
date_endDate.add("2018-09-30");
freeParaMap.put("date_endDate", date_endDate);
//每10分钟交易金额
List<Integer> amount=new ArrayList<Integer>();
amount.add(600);
amount.add(5000);
freeParaMap.put("amount", amount);
//每10分钟交易笔数
List<Integer> count=new ArrayList<Integer>();
count.add(2);
count.add(3);
freeParaMap.put("count", count);
System.out.println(JSON.toJSONString(freeParaMap));
//2018/08/30-2018/09/30期间,交易时间异常,合计5,600元,5笔。
System.out.println(freemarkerProcess(freeParaMap, template));
}
public static String freemarkerProcess(Map input, String templateStr) {
StringTemplateLoader stringLoader = new StringTemplateLoader();
String template = "content";
stringLoader.putTemplate(template, templateStr);
Configuration cfg = new Configuration();
cfg.setTemplateLoader(stringLoader);
try {
Template templateCon = cfg.getTemplate(template);
StringWriter writer = new StringWriter();
templateCon.process(input, writer);
return writer.toString();
} catch (IOException e) {
e.printStackTrace();
} catch (TemplateException e) {
e.printStackTrace();
}
return null;
}
复制代码
freemark(2)list,局部变量,计算,函数
最新推荐文章于 2021-03-04 02:39:04 发布