List<Map<String, List<Map<String, String>>>>
を繰り返してすべての内容を印刷する必要があります。Freemarker - ネストされたマップとネストされたリストを反復する
私の問題は、地図のブラケット構文(like in the documentation)を入れ子にしたレベルで使用するたびに構文の問題があることです。 List<Map<String, List<Map<String, String>>>>
のようなタイプのネストされたレベルを処理する方法を教えてください。
私は、このテストしている:
<!-- List<Map<String, List<Map<String, String>>>> -->
<#list myList as map1>
<!-- Map<String, List<Map<String, String>>> -->
<#list map1?keys as key1>
My Key: ${key1}
<!-- List<Map<String, String>> -->
<#list map1[key1] as map2>
<!-- Map<String, String> -->
<#list map2?keys as key2>
My Key: ${key2} | My Value: ${map2[key2]}
</#list>
</#list>
</#list>
</#list>
をそして、私はこのエラーを持っている:
java.lang.RuntimeException: freemarker.core.InvalidReferenceException: The following has evaluated to null or missing:
==> map1[key1] [in template "hello.html" at line 39, column 32]
----
Tip: It's the final [] step that caused this error, not those before it.
----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----
----
FTL stack trace ("~" means nesting-related):
- Failed at: #list map1[key1] as map2 [in template "hello.html" at line 39, column 25]
----
私はFreemarkerの2.3.23を使用しています。ありがとう。
あなたが非稼働テンプレートスニペットを引用することはできますか? – ddekany
作業中のテンプレートのスニペットでトピックを更新しました:) – Gugelhupf
'key1'の値が何であるか確認しましたか? – ddekany