在JSP中显示HTML特殊字符:为何以及何时进行转义?

时间:2015-05-12 15:07:42

标签: java html jsp spring-mvc

我有一个文件testHTML.jsp来显示一个包含一些HTML特殊字符的字符串:

<body>
    <div id="test" class="test">
        <c:out value="${htmlContent}" />
    </div>
</body>

变量htmlContent在SpringMVC控制器中设置:

@RequestMapping(value = "/testHTML", method = RequestMethod.GET)
public String getHTML(HttpServletRequest request) {
    String content = "<html>\n<p>Test Me\n</html>\n";
    request.setAttribute("htmlContent", content);
    return "/test/testHTML";
}

在Tomcat上部署测试应用程序并使用Firefox显示jsp。变量内容以其原始格式打印,带有尖括号等。也就是说,HTML特殊字符被转义。这可以通过查看Firefox渲染页面的源代码来确认。

我的问题是在这个过程中谁做了逃生工作? Web浏览器(Firefox),jsp引擎还是别的什么?感谢

1 个答案:

答案 0 :(得分:0)

尝试在标准模板中定义内容。使其与浏览器兼容。

String content ="
<!DOCTYPE html>
<html>
<body>

<h1>Test Me</h1>

<p>Test Me 2.</p>

</body>
</html>";