freemarker之list和map


第一次使用freemarker很不習慣,之前都是用velocity的。

    @RequestMapping("/free.htm")
    public ModelAndView helloSpring(HttpServletRequest request, HttpServletResponse response) throws Exception {
        Map<String,Object> map = new HashMap<String,Object>();
        List<Area> alist = new ArrayList<Area>();
        Area area = new Area();
        area.setName("我來啦~~");
        alist.add(area);
        alist.add(area);
        alist.add(area);
        alist.add(area);
        alist.add(area);
        alist.add(area);
        map.put("h1", "hhh");
        map.put("area", area);
        map.put("alist", alist);
        ModelAndView mv = new ModelAndView();
        AreaPage page = new AreaPage();
        page.setPageSize(50);
        List<Area> list = areaService.queryAllFirstArea(page);
        mv.addObject("list", list);
        mv.addObject("map", map);
        mv.addObject("area", area);
        mv.setViewName("index");
        return mv;
        
        
    }

java代碼是這樣的。有map,有list,有對象實體。

基本數據類型,可以通過${data}來獲得。

如果是普通的java類,可以通過${obj.field}來獲得對象的屬性。

list取值

<# list as obj>

  list存的是對象,取值${obj.field}。

  list存的是基本數據類型,取值${data}。

</#list>

 

map取值,因為上面的java程序mv.addObject("map",map);

我舉這3種取值,后面就舉一反三吧。我在網上找了好久關於map怎么取值,試了都不對。然后我就想到velocity對map的取值。${map.key1.key2...}可以這樣通過.來獲取值。

我就想到了,結果可以的。

1、${map.h1}得到的是hhh。基本數據類型,但是String不是基本數據類型。也可以這么取。

2、${area.name}得到"我來啦~~",area對象的name屬性。

3、map里面裝了list。把上面的list稍微添加點東西就可以了。

<# map.list as obj>

  list存的是對象,取值${obj.field}。

  list存的是基本數據類型,取值${data}。

</#list>

這三種是最常遇到的了。

還有Map的key必須是字符串。

freemarker的引用的對象為空,調用了他的方法或屬性,會報錯。所以要加判斷,這點就沒velocity好了。freemarker挺強大的,還可以根據屬性排序。暫時就了解了這么多,感覺freemarker用的人不怎么多,所以只做了解。不深入研究。會用基本的差不多可以開發了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM