2012-07-28 43 views
0

我是新的Java Servlets。我在數據庫中放置了一個文本,這是一個課程的描述,帶有一個可點擊的網址。我通過連接池建立與數據庫的連接。它工作正常。 Ik使用下面的代碼(荷蘭語)。url 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> 

該鏈接轉換爲ASCII字符。我如何才能獲得原始鏈接,目標是保持可點擊的網址?

+0

你的問題是模糊和混亂。我沒有看到代碼中的任何鏈接,並且沒有看到一些具體的例子,「轉換爲asci字符」的聲明是沒有意義的。標題也沒有清楚地概括具體問題。您的意思是說,由於某種原因,您已將HTML代碼保存在數據庫中,而不是在JSP文件中編寫HTML代碼,並且它已由「」進行了XML轉義,因此您希望禁用XML轉義''? – BalusC 2012-07-28 14:20:26

+0

當我禁用「escapeXml」屬性時,數據庫中的所有超鏈接都轉換爲asci字符。例如:< a href = " www.greenfoot.org " > www.greenfoot.org </a > – Phillip 2012-08-05 14:44:53

+0

我明白了。您需要修改「ASCII字符」的不正確定義:)您的具體問題是,數據庫中的文本被''(爲了防止潛在的XSS攻擊漏洞)進行了XML轉義,因此HTML顯示爲純文本。 – BalusC 2012-08-05 14:54:13

回答

0

如果beschriving包含有效的HTML代碼,你不懼怕任何XSS攻擊,你只需要禁用c:out標籤的XML轉義:

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

但是這等同於簡單的

${cursus.beschrijving} 

<c:out>被preciesely用來確保所有的特殊HTML字符(<, >, ", ', &)轉義。如果你不想要這個,不需要使用<c:out>標籤。它只有一個escapeXml屬性,因爲在EL的第一個版本中,它只能在標籤中使用,而不能直接在JSP代碼中使用。

+0

它的工作原理:-),謝謝你的回答 – Phillip 2012-07-28 14:37:41

+0

如果它有用,你必須接受答案:) – jelies 2012-07-30 07:42:30