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

后端 未结 6 1799
逝去的感伤
逝去的感伤 2020-12-01 00:49

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 G

相关标签:
6条回答
  • 2020-12-01 01:11

    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)}

    0 讨论(0)
  • 2020-12-01 01:20

    From GRAILS-1827, it looks like you can override the default codec for a specific page with

    <%@ defaultCodec="HTML" %>
    

    or

    <%@page defaultCodec="HTML" %>
    

    in some versions (see the referenced issue).

    0 讨论(0)
  • 2020-12-01 01:20

    I may have a solution. I'm not sure how accepted it is, though.

    I can set the default codec for expressions to HTML, but then use <%=myValue%> notation in GSP instead of ${} expressions to get the unescaped values onto the page.

    0 讨论(0)
  • 2020-12-01 01:22

    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 ${...}.

    0 讨论(0)
  • 2020-12-01 01:28

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

    0 讨论(0)
  • 2020-12-01 01:33

    Write your own tag and write the expression direct to the output stream:

    class YourTagLib {
    
        static namespace = "x"
    
        def unescaped = { attrs, body ->
            out << attrs.value
        }
    
    }
    

    Use it in your GSP:

    <x:unescaped value="${yourexpression}"/>
    
    0 讨论(0)
提交回复
热议问题