Переопределение конфигурации grails.views.default.codec = 'html' обратно в 'none' - PullRequest
44 голосов
/ 27 августа 2009

В Grails (<2.3), если я оставлю <code>grails.views.default.code='none' в grails Config.groovy, я могу HTML кодировать мои выражения явно в файлах GSP: ${myValue?.encodeAsHTML()}.

Если я установлю grails.views.default.codec='html" в Config.groovy, то кодировка HTML происходит автоматически для каждого выражения: ${myValue}.

Мой вопрос: если я установлю значение по умолчанию 'html', как мне вернуться к 'none' для одного выражения, когда я не хочу поведение кодирования HTML?

Ответы [ 6 ]

64 голосов
/ 18 ноября 2009

Чтобы суммировать различные уровни, на которых может применяться кодек:

Установите для Config.groovy grails.views.default.codec='html', чтобы по умолчанию экранирование HTML выполнялось на всех ${expressions} в приложении.

Тогда, когда вы хотите вернуть всю страницу по умолчанию к нулю, используйте директиву:

<%@page defaultCodec="none" %>

или

<%@ defaultCodec="none" %>

Чтобы отключить кодировку HTML для одного выражения на странице, в противном случае по умолчанию используется HTML, используйте запись <%=expression%> вместо ${...}.

8 голосов
/ 30 марта 2015

Если для уровня кодировки по умолчанию установлено значение html с использованием

grails.views.default.codec = "html"

затем для удаления кодировки html для одного выражения на странице вы можете использовать

$ {сырец (выражение)}

7 голосов
/ 01 февраля 2015

Попробуйте использовать $ {raw (myValue)}, вам не нужно объявлять кодеки страниц и т.д.

4 голосов
/ 17 ноября 2009

С GRAILS-1827 похоже, что вы можете переопределить кодек по умолчанию для конкретной страницы с помощью

<%@ defaultCodec="HTML" %>

или

<%@page defaultCodec="HTML" %>

в некоторых версиях (см. Упомянутую проблему).

1 голос
/ 27 февраля 2014

Напишите свой собственный тег и напишите выражение непосредственно в выходной поток:

class YourTagLib {

    static namespace = "x"

    def unescaped = { attrs, body ->
        out << attrs.value
    }

}

Используйте это в своем GSP:

<x:unescaped value="${yourexpression}"/>
1 голос
/ 27 августа 2009

У меня может быть решение. Я не уверен, насколько это принято.

Я могу установить кодек по умолчанию для выражений в HTML, но затем использовать нотацию <% = myValue%> в GSP вместо выражений $ {} для получения неэкранированных значений на странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...