2012-07-28 1 views
0

Je suis nouveau avec Java Servlets. Je mets un texte dans la base de données, qui est une description d'un cours, avec une URL cliquable. Je fais une connexion à la base de données via un pool de connexion. Ça fonctionne bien. Ik utilise le code suivant (en néerlandais).url base de données jstl

<c:forEach items="${cursussen}" var="cursus"> //an arraylist of courses 
<tr> 
    <td> 
     <c:out value="${cursus.cursusNaam}" /></td> //course name 
     <td><c:out value="${cursus.niveau}" /></td> //course level 
     <td><c:out value="${cursus.beschrijving}" /></td> //course description with links 
      </tr> 
</c:forEach> 

Le lien est converti en caractères asci. Comment puis-je obtenir le lien d'origine dans le but qu'il reste une URL cliquable?

+0

Votre question est vague et confuse. Je ne vois aucun lien dans votre code et l'énoncé "converti en caractères asci" n'a aucun sens sans voir quelques exemples concrets. Le titre ne résume pas non plus clairement le problème concret. Voulez-vous dire que vous avez enregistré du code HTML dans la base de données pour une raison quelconque au lieu d'écrire du code HTML dans un fichier JSP et qu'il a été échappé XML par le '' et que vous voulez donc désactiver l'échappement XML de ''? – BalusC

+0

Lorsque je désactive l'attribut "escapeXml", tous les hyperliens dans la base de données sont convertis en caractères asci. Exemple: < a href = " www.greenfoot.org " > www.greenfoot.org/a > – Phillip

+0

Je vois. Vous avez besoin de réviser votre définition incorrecte de "caractères ASCII" :) Votre problème concret est que le texte de la base de données a été XML-échappé par '' (pour éviter les trous d'attaque XSS potentiels) et donc HTML apparaît en texte brut. – BalusC

Répondre

0

Si le beschriving contient du code HTML valide, et vous ne craignez pas une attaque XSS, il vous suffit de désactiver le XML-escaping de la balise c:out:

<c:out value="${cursus.beschrijving}" escapeXml="false" /> 

Mais cela équivaut à la plus simple

${cursus.beschrijving} 

<c:out> est preciesely utilisé pour vous assurer que tous les caractères HTML spéciaux (<, >, ", ', &) sont échappés. Si vous ne le souhaitez pas, inutile d'utiliser la balise <c:out>. Il a un attribut escapeXml seulement parce que dans les premières versions du EL, il ne pouvait être utilisé qu'à l'intérieur des balises, et pas directement dans le code JSP.

+0

Cela fonctionne :-), merci pour la réponse – Phillip

+0

Si c'était utile, vous devez accepter la réponse :) – jelies

Questions connexes