无法在JSP页面中正确显示特殊字符

时间:2011-04-08 17:18:56

标签: jsp

我需要在表格TD中显示以下特殊字符(排除< symbol和正斜杠之间的反斜杠),

1) '/<\/@/test#/$/&/)'

但是,浏览器只能显示'/ 即数据被截断。

上述问题仅在&lt;和/ chars连续发生。

也就是说,跟随工作,因为在&lt;之后没有成功的正斜杠/符号

2) '/<@/test#/$/&/)'

我正在使用java代码来逃避其他特殊字符。 我能够成功替换&lt;用&符号;但是如何替换正斜杠/仅当&lt;和/一起出现。

请帮帮我

很抱歉,即使在这个网站上你也看不到我需要达到的目的,因此在第1点中排除了反斜杠(我需要显示没有反斜杠,因为你理解我已经把它放了)。因为我是新用户,所以无法发布图片。

2 个答案:

答案 0 :(得分:3)

默认情况下,JSP发送的everthing被Web浏览器视为HTML。 <表示HTML标记的开始,因此webbrowser将解析它(并且最终因语法错误而失败)。

您想要转义那些HTML特殊字符,例如<>&"

&lt; will be displayed as <
&gt; will be displayed as >
&amp; will be displayed as &
&quot; will be displayed as "

如果是动态文字,最好使用JSTL <c:out>代码完成。

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<c:out value="${bean.text}" />

如果您想设置HTML属性,JSTL fn:escapeXml() function就更好了。

<%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<input type="text" value="${fn:escapeXml(bean.text)}" />

答案 1 :(得分:0)

通过将此指令添加到页面中,使它可以在JSP上工作

<%@ page contentType="text/html; charset=UTF-8" %>