N N
N N

Reputation: 1638

how to get specific key's value in freemarker

I have following HashMap:

 Map<String, Object> hashMap = new HashMap<>();
 hashMap.put("type", "message");

I wrote a switch statement in freemarker template:

    <#switch hashMap.get("type")>
        <#case "message">
            <p>Message type</p>
            <#default>
                <p>Nothing</p>
    </#switch>

But when I execute the code, I am getting exception:


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)

Can Anyone please point at what am I doing wrong?

Upvotes: 1

Views: 4082

Answers (1)

Andres
Andres

Reputation: 10717

Instead of

hashMap.get("type")

use

hashMap[type]

Upvotes: 3

Related Questions