Katherine C
Katherine C

Reputation: 245

Output string as html in freemarker

So we are storing html in out data model. I need to output this into a freemarker template:

example:

[#assign value = model.value!]
${value}

value = '<p>This is <a href='somelink'>Some link</a></p>'

I have tried [#noescape] but it throws an error saying there is no escape block. see FREEMARKER: avoid escaping HTML chars. This solution did not work for me.

Upvotes: 6

Views: 3857

Answers (1)

ratherblue
ratherblue

Reputation: 2108

[#noescape] or <#noescape> is only valid when used inside an [#escape] tag. Your data is probably stored with the HTML encoded. You need to get the backend to un-encode the html.

Otherwise you'll need to do something like...

${value?replace("&gt;", ">")?replace("&lt;", "<")}

But that isn't a good approach because it won't catch all the encoded values and shouldn't be done in the view layer.

Upvotes: 5

Related Questions