繁体   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