freemarker テンプレートでドロップダウン フィールドを作成するにはどうすればよいですか? ドロップダウン オプションと値はマップから渡されます。Controllerから渡されるマップは次のとおりです。
Map<String, Map<String, String>> codeTable = new HashMap<String,Map<String, String>>();
Map<String, String> codeTableValues = new HashMap<String,String>();
codeTableValues.put("1", "US");
codeTableValues.put("2", "UK");
codeTableValues.put("3", "India");
codeTableValues.put("4", "Ireland");
codeTableValues.put("5", "Germany");
codeTable.put("country", codeTableValues);
freemarker の場合、私は遭遇spring.ftl
して使用しようとしましたが、頭を悩ませることformSingleSelect
ができません。FTLコード:
<#elseif field.@type="select">
<@spring.bind "codeTable.country" />
<@spring.formSingleSelect "country", codeTable.country, "" />
</#if>
例外
FreeMarker template error: Method public org.springframework.web.servlet.support.BindStatus org.springframework.web.servlet.support.RequestContext.getBindStatus(java.lang.String) throws java.lang.IllegalStateException threw an exception when invoked on org.springframework.web.servlet.support.RequestContext object "org.springframework.web.servlet.support.RequestContext@1479ef9" with arguments of types [java.lang.String,]. See cause exception. The failing instruction (FTL stack trace): ---------- ==> #assign status = springMacroRequestCo... [in template "spring.ftl" in macro "bind" at line 74, column 17] #else [in template "spring.ftl" in macro "bind" at line 73, column 9] @spring.bind "codeTable.country" [in template "index.ftl" at line 31, column 33] #elseif field.@type = "select" [in template "index.ftl" at line 30, column 25]