grails.views.default.codec = 'html'설정을 'none'으로 다시 설정합니다.



Answers

코덱을 적용 할 수있는 다양한 수준을 요약하면 다음과 같습니다.

Config.groovy의 grails.views.default.codec='html' 을 설정하면 애플리케이션의 모든 ${expressions} 에 기본적으로 HTML 이스케이프가 적용됩니다.

그런 다음 전체 페이지를 none으로 다시 설정하려면 다음 지시문을 사용하십시오.

<%@page defaultCodec="none" %>

또는

<%@ defaultCodec="none" %>

HTML로 기본 설정되어있는 페이지에서 한 표현식에 대해 HTML 인코딩을 사용하지 않으려면 ${...} 대신 <%=expression%> 표기법을 사용하십시오.

Question

Grails (<2.3)에서 Grails Config.groovy에 grails.views.default.code='none' 을 남겨두면 GSP 파일에 내 표현식을 HTML로 명시 적으로 인코딩 할 수 있습니다 : ${myValue?.encodeAsHTML()} .

Config.groovy에 grails.views.default.codec='html" 설정하면 모든 표현식에 대해 HTML 인코딩이 자동으로 발생합니다. ${myValue} .

내 질문 : 기본값을 'html' 로 설정하면 HTML 인코딩 동작을 원하지 않을 때 어떻게 한 표현식에 'none' 돌아갈 수 있습니까?




GRAILS-1827 경우 특정 페이지의 기본 코덱을 재정의 할 수있는 것처럼 보입니다.

<%@ defaultCodec="HTML" %>

또는

<%@page defaultCodec="HTML" %>

일부 버전에서는 (참조 된 문제 참조).




직접 태그를 작성하고 표현식을 직접 출력 스트림에 씁니다.

class YourTagLib {

    static namespace = "x"

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

}

GSP에서 사용하십시오.

<x:unescaped value="${yourexpression}"/>



Related