Primordial de grails.vistas.por defecto.codec=’html’ config de nuevo a ‘ninguno’

En Grails (<2.3), si dejo grails.views.default.code='none' en el grails Config.groovy, es a mí a la codificación de HTML mis expresiones explícitamente en el SGP de los archivos: ${myValue?.encodeAsHTML()}.

Si me puse grails.views.default.codec='html" en la configuración.groovy, entonces la codificación HTML sucede automáticamente para cada expresión: ${myValue}.

Mi pregunta: Si yo establecer el valor predeterminado para 'html', ¿cómo puedo volver a 'none' de una expresión cuando no quiero la codificación HTML comportamiento?

6 Kommentare

  1. 8

    Si la codificación predeterminada se establece el nivel de html usando

    grails.vistas.por defecto.codec = «html»

    a continuación, para la eliminación de la codificación html para una expresión en una página se puede utilizar

    ${raw(expresión)}

    • Sólo disponible para Grails >= 2.3 consulte mrhaki.blogspot.fr/2013/11/…. La cuestión de los objetivos de Grails < 2.3. Ver Juan Flinchbaugh respuesta a continuación.
  2. 64

    Para resumir los diferentes niveles en los que el códec se puede aplicar:

    Set Config.groovy es grails.views.default.codec='html' para obtener HTML escapar por defecto en todos los ${expressions} en la aplicación.

    Cuando desee defecto una página entera a ninguno, el uso de la directiva:

    <%@page defaultCodec="none" %>

    o

    <%@ defaultCodec="none" %>

    Para desactivar la codificación HTML para una expresión en una página que es de lo contrario, el uso de HTML, utilice <%=expression%> la notación en lugar de ${...}.

    • el uso de la directiva de página es buena.
    • Esta solución no funciona. En su lugar, usted tendrá que usar la ‘cruda’ método: ${raw(expression)}
    • Voy a tener que volver a esta con la nueva Grails. Probablemente hizo mucho más fácil.
    • Todavía funciona si usted todavía está utilizando <2.3 😉
    • Uy, pensé en Grails 2.4.3 nada de lo anterior es el trabajo, pero estaba equivocado. Simplemente no uso «println» en la expresión de la sección – esto va a codificar todo!
    • gracias por ${raw(expr)}, es exactamente lo que yo estaba buscando. Alguna idea de en donde se documenta? Quiero decir que se para ser documentado en algún lugar, casi un año después de que se introdujo a la derecha?
    • es en el docs (al menos el 2.3 docs), pero su aspecto es muy corta duración: grails.org/doc/2.3.0.M1/guide/security.html

  3. 4

    De GRAILS-1827, parece que puede reemplazar el códec predeterminado para una página específica con

    <%@ defaultCodec="HTML" %>

    o

    <%@page defaultCodec="HTML" %>

    en algunas versiones (ver la referencia de la edición).

    • Esto se ve bien para el reemplazo de la página.
  4. 1

    Yo podría tener una solución. No estoy seguro de cómo se acepta es que, a pesar de que.

    Puedo configurar el códec predeterminado para las expresiones a HTML, pero, a continuación, utilizar <%=myValue%> la notación en el SGP en lugar de ${} las expresiones para obtener el sin escape valores en la página.

    • Usted ha dicho más de esto en tu otra respuesta. Este no aporta nada.
    • Mira las fechas. La mayor respuesta fue más tarde. Y estaban ambos de 2009 (y su comentario fue un año antes que la mía).) 😐
    • Mi punto es que esta inferiores respuesta debe ser eliminado. Mis disculpas para no hacer esto más claro.
  5. 1

    Escribir su propia etiqueta y escriba la expresión directa en el flujo de salida:

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

    Utilizar en su SGP:

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

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea