1
内の特定のキーの値を取得する:私はHashMapを以下しているかFreeMarkerの
Map<String, Object> hashMap = new HashMap<>();
hashMap.put("type", "message");
私はFreeMarkerのテンプレートでswitch文を書いた:
<#switch hashMap.get("type")>
<#case "message">
<p>Message type</p>
<#default>
<p>Nothing</p>
</#switch>
しかし、私は、コードを実行すると、私は例外を取得しています:
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
at freemarker.core.UnexpectedTypeException.newDesciptionBuilder(UnexpectedTypeException.java:80)
at freemarker.core.UnexpectedTypeException.<init>(UnexpectedTypeException.java:43)
at freemarker.core.NonHashException.<init>(NonHashException.java:49)
at freemarker.core.Dot._eval(Dot.java:48)
at freemarker.core.Expression.eval(Expression.java:81)
at freemarker.core.MethodCall._eval(MethodCall.java:58)
at freemarker.core.Expression.eval(Expression.java:81)
at freemarker.core.EvalUtil.compare(EvalUtil.java:111)
at freemarker.core.SwitchBlock.accept(SwitchBlock.java:67)
at freemarker.core.Environment.visit(Environment.java:326)
at freemarker.core.Environment.visit(Environment.java:332)
at freemarker.core.Environment.process(Environment.java:305)
at freemarker.template.Template.process(Template.java:378)
at com.comp.www.reports.FreeMarkerReport.main(FreeMarkerReport.java:70)
缶A私が間違っていることを指摘してください。
をハッシュマップ設定しますか?いずれにしても、あなたのスイッチのスイッチは '<#switch type>'でなければなりません。 – Oleg
もう一つの発言:あなたの事件の後に '<#break>'を忘れました – jeanr