簡體   English   中英

JSP中的HTML輸出問題

[英]Problem with HTML output in JSP

我有生成一些HTML的代碼,但是當我嘗試在jsp中輸出此內容時,所有的'<'被替換為' &lt; '和所有'>'和' &gt; ”。 這是呈現結果的片段:

<c:out value="${data}"/>

有人可以解釋造成字符替換的原因以及如何避免它嗎?

PS:我已經嘗試過<c:out/>標記的escapeXml ='false'屬性,什么都不會顯示。

謝謝娜塔莎

您希望生成的HTML做什么,您希望它被瀏覽器使用是標記,還是希望它顯示在最終頁面上,例如作為用戶可見的示例代碼? 如果不使用escapeXml ='false',它將作為HTML輸出到瀏覽器,並與所有其他標記一起解釋。 使用escapeXml ='true'時,它將變成轉義的標記,該標記對最終用戶可見。 因此,這完全取決於您要執行的操作。

如果要使<和>字符對最終用戶可見,則它們必須顯示為&lt;。 和&gt; 在標記中。

缺口

out標記的行為符合預期-如果您希望輸出文字值,則可以在文本中直接插入EL表達$ {data}。 也就是說,代替

Some content <c:out value="${data}"/> some more content

你會用

Some content ${data} some more content 

在您的JSP中。

在對c:out感到生氣之前,請考慮輸出通常是用戶放入其中的內容-可能帶有一些不需要的代碼。 想象一下,在StackOverflow上使用$ {data}代替c:out(-)的(C#版本):-)

在c:out標記上有一個escapeXml屬性,默認情況下將其設置為true,將其設置為false,並且不會進行轉義,即HTML將在瀏覽器中輸出。

<c:out value="${data}"/>轉義HTML字符,而${data}不會轉義。 看看這個相關的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM