Excusez mon ignorance, mais je suis nouveau à Velocity et j'essaie de résoudre le problème de quelqu'un d'autre. J'ai besoin d'encoder une URL dans le template de vélocité. Je crée une URL et dans le cadre de la chaîne de requête je passe dans un nom de page un utilisateur créé. Cette page peut contenir des caractères spéciaux comme ëðû. L'URL ressemblerait http://foo.com/page1/jz?page=SpecialChars_ëðûExiste-t-il un moyen d'encoder une URL dans le modèle de vélocité
Répondre
Pour encoder l'URL dans un modèle que vous pouvez utiliser:
$esc.url($myUrl)
qui est une partie de EscapeTool.
Note: Ceci nécessite l'utilisation de velocity tools jar, en plus du pot de vitesse. (Il n'y aura pas d'exception si vous ne l'avez pas). En outre, vous pouvez vouloir vérifier votre configuration, comme décrit here
Je sais qu'il est tard. Voici comment j'ai résolu cela aujourd'hui. Dans la classe appelant le moteur, on pourrait dire
configure("esc",new EscapeTool());
context.put("url", "http://www.google.com");
maintenant dans le modèle que vous pourriez dire
esc.url de $ ($ url)
J'étais tout simplement pas prêt à utilisez l'EscapeTool en vitesse pour un encodage d'URL. Par conséquent, voici la solution que je suis arrivé -
vous pouvez utiliser $ httpUtil.decodeURL ($ siteURL)/$ httpUtil.encodeURL ($ siteURL) pour l'URL Encodage dans Velocity
En outre, vous pouvez utilisez $htmlUtil.escapeAttribute()
pour échapper du texte/html Contenu dans Velocity.
$htmlUtil.escapeAttribute($refSiteName)
Y at-il quelque chose que vous devez faire pour activer les outils d'échappement? J'ai essayé d'ajouter ceci à mon modèle, comme $ esc.url ($ myParam) mais il a été traité comme un littéral. – Brabster
Avez-vous des outils activés? Comment les activer dépend de la façon dont vous initialisez votre moteur de vélocité. – serg