Thymeleaf + Ressort : Comment garder le saut de ligne?
Je suis en utilisant Thymeleaf moteur de template avec le printemps et je voudrais afficher le texte stocké par une multiligne textarea.
Dans ma base de données multi-chaîne de magasin avec "\n", comme ceci : "Test1\nTest2\n...."
Avec th:le texte que j'ai obtenu : "Test1 Test2", sans saut de ligne.
Comment je peux afficher saut de ligne à l'aide de Thymeleaf et éviter manuellement "\n" à remplacer par < br/>, et évitez de les utiliser th:utext (cette forme ouverte de xss, injection) ?
Merci !
OriginalL'auteur Daividh | 2015-05-22
Vous devez vous connecter pour publier un commentaire.
Deux options:
Option 1:
Vous pouvez utiliser le th:utext si vous échapper du texte à l'aide de l'expression de l'utilitaire de méthode
#strings.escapeXml( text )
pour prévenir les XSS, injection et de mise en forme indésirable - http://www.thymeleaf.org/doc/tutorials/2.1/usingthymeleaf.html#stringsPour faire de cette plate-forme indépendante, vous pouvez utiliser
T(java.lang.System).getProperty('line.separator')
pour saisir le séparateur de ligne.À l'aide de l'existant Thymeleaf expression utilitaires, cela fonctionne:
Option 2:
L'API pour ce qui est maintenant différente dans les 3 (j'ai écrit ce tutoriel pour 2.1)
Nous espérons que vous pouvez combiner les dessous de la logique avec leur tutoriel officiel. Un jour peut-être je vais avoir une minute pour mettre à jour cette complètement. Mais pour l'instant:
Voici l'officiel Thymeleaf tutoriel pour la création de votre propre dialecte.
Une fois l'installation terminée, tout ce que vous devez faire pour accomplir échappé textline sortie conservés avec des sauts de ligne:
La pièce principale, le travail est le processeur. Le code suivant va faire l'affaire:
Maintenant que vous avez le processeur, vous avez besoin d'un custom dialecte d'ajouter le processeur.
Maintenant, vous devez l'ajouter à votre xml ou java configuration:
Si vous écrivez un Spring MVC de l'application, vous avez juste à le mettre à la additionalDialects propriété du Moteur de Template de haricots, de sorte qu'il est ajouté à la valeur par défaut SpringStandard dialecte:
Ou si vous utilisez le Printemps et préfère utiliser JavaConfig vous pouvez créer une classe annotée avec @Configuration dans votre forfait de base qui contient le dialecte comme un managed bean:
Voici quelques références sur la création des processeurs et dialectes: http://www.thymeleaf.org/doc/articles/sayhelloextendingthymeleaf5minutes.html , http://www.thymeleaf.org/doc/articles/sayhelloagainextendingthymeleafevenmore5minutes.html et http://www.thymeleaf.org/doc/tutorials/2.1/extendingthymeleaf.html
Je ne suis pas sûr si Stackoverflow mises à jour lorsque la réponse est modifié ou pas, mais j'ai inclus un exemple de mise en œuvre pour le processeur personnalisé et le dialecte approche. Espérons que cela aide!
Il va m'aider , Merci !
Le thymeleaf API a changé depuis. L'Option 2 peut être facilement adapté à l'API 3.0 suivant le tutoriel officiel: thymeleaf.org/doc/tutorials/3.0/extendingthymeleaf.html
Merci de me laisser savoir ce qui a changé! J'ai ajouté le lien pour la réponse. Je n'ai pas le temps de mettre à jour le plein de chose pour le moment, mais bientôt je l'espère!
OriginalL'auteur David Roberts
Dans mon cas
escapeJava()
renvoie des valeurs unicode pour le cyrillique symboles, j'ai donc envelopper le tout dansunescapeJava()
méthode d'aider à résoudre mon problème.OriginalL'auteur Evgeniy Vynogradov
Peut-être pas ce que l'OP avait à l'esprit, mais cela fonctionne et empêche l'injection de code:
(À l'aide de HTML5-style Thymeleaf.)
OriginalL'auteur holmis83
Essayer cette
OriginalL'auteur K. Siva Prasad Reddy
Vous devez utiliser le th:utext et ajouter saut de ligne à la corde.
Mon code est:
OriginalL'auteur Stefan Dosković