Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Overriding grails.views.default.codec='html' config back to 'none'

In Grails (<2.3), if I leave grails.views.default.code='none' in the grails Config.groovy, it's up to me to HTML encode my expressions explicitly in the GSP files: ${myValue?.encodeAsHTML()}.

If I set grails.views.default.codec='html" in the Config.groovy, then the HTML encoding happens automatically for every expression: ${myValue}.

My question: If I set the default to 'html', how do I get back to 'none' for one expression when I don't want the HTML encoding behavior?

like image 764
John Flinchbaugh Avatar asked Aug 26 '09 21:08

John Flinchbaugh


3 Answers

To summarize the various levels at which the codec can be applied:

Set Config.groovy's grails.views.default.codec='html' to get HTML escaping by default on all ${expressions} in the application.

Then when you want to default a whole page back to none, use the directive:

<%@page defaultCodec="none" %>

or

<%@ defaultCodec="none" %>

To disable HTML encoding for one expression in a page that is otherwise defaulting to HTML, use <%=expression%> notation instead of ${...}.

like image 128
John Flinchbaugh Avatar answered Oct 14 '22 19:10

John Flinchbaugh


If default encoding level is set to html using

grails.views.default.codec = "html"

then for removing the html encoding for one expression in a page you can use

${raw(expression)}

like image 8
Himanshu Modi Avatar answered Oct 14 '22 17:10

Himanshu Modi


Try using ${raw(myValue)} , you do not need to declare page codecs etc

like image 7
Kalyan Das Avatar answered Oct 14 '22 19:10

Kalyan Das