44 votes

Remplacement de grails.views.default.codec = 'html' sur 'aucun'

Si je laisse grails.views.default.code='none' dans le fichier de configuration, il me revient de coder HTML explicitement mes expressions dans les fichiers GSP: ${myValue?.encodeAsHTML()} .

Si je définis grails.views.default.codec='html" dans Config.groovy, le codage HTML se produit automatiquement pour chaque expression: ${myValue} .

Ma question: Si je règle par défaut la valeur 'html' , comment puis-je revenir à 'none' pour une expression lorsque je ne souhaite pas le comportement de codage HTML?

64voto

John Flinchbaugh Points 1391

Pour résumer les différents niveaux où le codec peut être appliquée:

Set Config.groovy de l' grails.views.default.codec='html' pour obtenir HTML échapper par défaut sur tous ${expressions} dans la demande.

Puis, quand vous voulez par défaut d'une page entière sur aucun, utilisez la directive:

<%@page defaultCodec="none" %>

ou

<%@ defaultCodec="none" %>

Pour désactiver le codage HTML pour une expression dans une page qui est par ailleurs la valeur par défaut HTML, utilisez <%=expression%> de la notation au lieu de ${...}.

4voto

Jean Barmash Points 3780

À partir de GRAILS-1827 , il semble que vous puissiez remplacer le codec par défaut pour une page spécifique avec

 <%@ defaultCodec="HTML" %>
 

ou

 <%@page defaultCodec="HTML" %>
 

dans certaines versions (voir le problème référencé).

1voto

Stefan Urbansky Points 11

Écrivez votre propre tag et écrivez l'expression directement dans le flux de sortie:

 class YourTagLib {

    static namespace = "x"

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

}
 

Utilisez-le dans votre SPG:

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

1voto

John Flinchbaugh Points 1391

J'ai peut-être une solution. Je ne sais pas si c'est accepté, cependant.

Je peux définir le codec par défaut pour les expressions sur HTML, mais utiliser ensuite la notation <% = myValue%> dans GSP au lieu des expressions $ {} pour obtenir les valeurs non échappées sur la page.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X