2011-12-07 10 views
2

Freemarkerテンプレートのデータモデル全体をJavaScriptに公開する簡単な方法はありますか?JavaScriptのリテラルをJSオブジェクトのリテラルに変換することをお勧めします。Freemarkerのデータモデル全体をJavaScriptに公開していますか?

私は、キーを反復処理する方法を知っている:

<#list .data_model?keys as key> 
    </#list> 

そしておそらく私は、次のようなテンプレート内のグローバルJS変数を構築するだろうか?

答えて

4

FreeMarkerを使用してデータモデル全体をトラバースし、対応するJSONオブジェクトの「ソースコード」を生成することはできますが、文字列エスケープ(例:js_string builtin)や潜在的に大きな)オブジェクトグラフ。

何年か前、私はFreeMarkerデータモデルの素敵なツリー表現を印刷する汎用データモデル "dumper"を書いていました。おそらくあなたが欲しい、または必要とするものではないかもしれませんが、インスピレーションかもしれません。あなたはそれを見つけることができますhere

+0

私は解決策のために完全に別の道を行くことになったが、これは便利感謝です! – mattacular

+0

私はChaquotayのダンプからJSONマクロを作りました。 https://github.com/MajorLeagueBaseball/freemarker-json – sakabako

0

ジャクソンまたは他のjson APIを使用してオブジェクトをjsonに変換し、json文字列をモデルに追加することもできます。春MVCを使用して

例:FreeMarkerので

@RequestMapping(value = "/test", method = RequestMethod.GET) 
public ModelAndView test() throws Exception { 


    String output = new ObjectMapper().writer().withDefaultPrettyPrinter().writeValueAsString(new HashMap<String, Object>()); 

    Map<String, Object> model = new HashMap<>(); 
    model.put("result", output); 
    return new ModelAndView("page", "model", model); 
} 

$ {} model.result

関連する問題