map.put("length",20);
map.put("data1",obj);
map.put("data2",obj);
...<#list 1..length as num>
 <#list data${num} as info>
  ${info}
 </#list>
</#list>如何让这个<#list data${num} as info>
得到data1 data2 这样之类的呢,因为这样写报错

解决方案 »

  1.   

    ${map}.get("length");
    ${map}.get("data");
    ${map}.get("data1");
    这样直接获取不行吗 ,,map  有 ,key 也有。。
      

  2.   

    这样是可以,但是我想让系统自己循环的给到一个 data然后 有mapkey的时候 就+1 这样
    我就是想让<#list 1..length as num> 的这个num 来做 这个循环的事情,不要重复的写key
      

  3.   


    info 属性应该是obj下的vlaue,data1 是key,
    我想要的是 将
    <#list 1..length as num> 的num给到下一个list中“data${num}”如这样
     <#list data${num} as info> 然后循环key,打出所有key下的vlaue
      

  4.   

    Map<Object, Object> map = new LinkedHashMap<Object, Object>();
    List<String> list1 = new ArrayList<String>();
    list1.add("a");
    list1.add("b");
    list1.add("c");
    list1.add("d");
    map.put("length", 5);
    map.put("data1", list1);
    map.put("data2", list1);
    map.put("data3", list1);
    map.put("data4", list1);
    map.put("data5", list1);
    model.put("mm", map);模版上:<#list mm?keys as k>
    <#if k=="length">
    <#assign length = mm[k]>
    <#list 1..length as mun>
    <#assign mmd = "data${mun}">
    ${mmd}
    <#list mm[mmd] as ll>
    ${ll}
    </#list>
    <br>
    </#list>
    </#if>
    </#list>是这个意思吗????
      

  5.   

    意思是这个意思,但是我大概试了下你这样的写法,始终都是只能获得key值,不能获得vlaue
      

  6.   


    java public boolean freeMarkerService(FreeerModel type){
    FreeMarkerUtils fs = new FreeMarkerUtils();
    fs.init1();
    Map map = new HashMap();
    // Map modle = new HashMap();
    PageInfo pageInfo;
    try {
    int num = 0;
    for(int i = 0;i < type.getTable_desc().length; i++){
    NameMapUtils.nameMap.put(i, "data"+i);//分配名字
    pageInfo = commonPageController.pageForPageInfo1(
    type.getTable_name()[i], type.getTable_key()[i], map, type.getTable_desc()[i], 7, 0);
    // System.out.println(type.getTable_name()[i]+""+type.getTable_key()[i]+""+type.getTable_desc()[i]+"--------------"+i+"--------------页面list名称:"+NameMapUtils.nameMap.get(i));
    // System.out.println(num+"  "+NameMapUtils.nameMap.get(i)+"=="+pageInfo.getDataList());

    // for(int j=0; j<pageInfo.getDataList().size();j++){
    // System.out.println(j+"=j="+pageInfo.getDataList().get(j).toString());
    // }
    map.put(NameMapUtils.nameMap.get(i), pageInfo.getDataList());
    num++;
    }
    map.put("mapLengths",num);

    // System.out.println("============================================================================="+num);

    // Set key = map.keySet();
    // System.out.println("key===="+key);

    // modle.put("modle", map);
    // Set key1 = modle.keySet();
    // System.out.println("key1===="+key1);

    if(type.getName().equals(AuthName.NEWSINFO_NAME)){
    // || type.getName().equals(AuthName.EXAMACT_NAME)
    Template t2 = fs.getCfg().getTemplate(type.getName()+"DH.ftl");//导航页
    t2.setEncoding("utf-8");
    String url = AuthName.PUBLIC_FILE_PATH+type.getName()+"/"+type.getName()+"DH"+AuthName.PUBLIC_HTML;

    Writer out2 = new OutputStreamWriter(new FileOutputStream(url),"utf-8");
    t2.process(map, out2);
    }

    String x = type.getName()+AuthName.PUBLIC_FTL;
    System.out.println("-----------------------------------:"+x);
    Template t = fs.getCfg().getTemplate(x);//首页
    t.setEncoding("utf-8");
    // System.out.println(type.getWrite_file_path());
    Writer out1 = new OutputStreamWriter(new FileOutputStream(type.getWrite_file_path()),"utf-8");
    t.process(map, out1);

    } catch (EicException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    System.out.println("Create fail................");
    return false;
    } catch (TemplateException e) {
    e.printStackTrace();
    System.out.println("Create fail................");
    return false;
    } catch (Exception e){
    e.printStackTrace();
    System.out.println("Create fail................");
    return false;
    }


    System.out.println("Create successfully!!");
    return true;
    }
    .ftl<#list 1..mapLengths as mun>
    <#assign mmd = "data${mun}">
    <#list [mmd] as info>
    <a>${info}</a>
    </#list>
    </#list>感觉这个info一直是拿assign里的值一样的,我后台得到的值
    ${info.F_NAME_ACTLESSON}取不出来,
    0=j={F_UPDATETIME_ACTLESSON=2012-05-28, F_UPDATEUSER_ACTLESSON=superAdmin, F_ISPUBLIC_ACTLESSON=001, F_ORGID_ACTLESSON=its007, F_MEMO_ACTLESSON=基础软件测试, F_NAME_ACTLESSON=基础软件测试, F_TIMEASK_ACTLESSON=120, F_ID_ACTLESSON=2012613301, F_TRAINPAPER_ACTLESSON=null, F_OWNER_ACTLESSON=系统管理, F_DESCRIPT_ACTLESSON=oracle.sql.CLOB@4ee2dd22, F_CONTENT_ACTLESSON=oracle.sql.CLOB@79ab14cd}
    模版上:<#list mm?keys as k>
    <#if k=="length">
    <#assign length = mm[k]>
    <#list 1..length as mun>
    <#assign mmd = "data${mun}">
    ${mmd}
    <#list mm[mmd] as ll>
    ${ll}
    </#list>
    <br>
    </#list>
    </#if>
    </#list>你这样 我也试过的,什么值也获取不到,就是一片空白的。我自己模板里<#list [mmd] as info>
    改为<#list data1 as info> 就可以用 ${info.F_NAME_ACTLESSON} 获取到数据
      

  7.   

    麻烦问下,我这个到底是什么问题,我想 是不是 <#assign mmd = "data${mun}"> 相当于是吧 data1..2..3 给到mmd ,其实 只能拿到mmd 里的值,而没有去找map.put?
    如果是这样的话 那又有啥方法能循环这个拼接的结果集呢?帮我解决我加分给你 谢谢~