2009-11-26 7 views
11

J'essaie d'afficher du texte riche html, c'est-à-dire de manière dynamique, dans un élément de guichet. Un exemple est l'affichage d'un e-mail texte enrichi dans une balise div. comment puis-je obtenir cela avec wicket. le composant Étiquette du guichet ne semble pas supporter cela. est-il un élément qui neComment afficher le texte html dans un élément Wicket?

Répondre

21

trouvé ça dans l'excellent Manning Wicket en action:

add(new Label("markup", "<h1>Hello!</h1>").setEscapeModelStrings(false)); 

L'appel à setEscapeModelStrings dit Wicket ne pas échapper le contenu de la chaîne fournie, et de rendre le contenu dans le balisage résultant. Cela fait l'affaire, comme vous pouvez le voir sur la bonne capture d'écran de la figure 5.4. Notez que ce paramètre est disponible sur tous les composants Wicket, mais il est principalement utile sur les étiquettes.

Comme le livre note également cependant, vous devez être au courant des attaques de script injection ..

+0

Merci beaucoup! l'autre chose maintenant est cependant l'attaque par injection de script .. des suggestions ?? Je pense que je devrais exécuter la vérification avant de stocker les données, donc quand je l'afficherai plus tard, il sera propre. –

+0

Le livre recommande une approche similaire dans le filtrage de tout script avant de stocker/afficher l'entrée .. Sinon, je ne peux rien recommander malheureusement .. – Tim

+0

Je sais que c'est super vieux, mais vous pouvez également utiliser un éditeur de Wysiwyg . Ou créez votre propre recherche et remplacez l'encodage des sortes (en utilisant {b} gras {/ b} ou quelque chose comme ça, par exemple). Il existe des alternatives, mais aucune d'entre elles n'est super facile et aucune n'est parfaite. – adpro