我有一个带有以下代码的弹簧控制器:
@RequestMapping(value="/getMessage.htm", method=RequestMethod.POST)
protected String uploadFile(ModelMap model){
//... other codes
model.addAttribute("theMessage", "Hello world <b>how are you</b> today?");
return "the-view";
}
在客户端(JavaScript)中,我使用以下代码显示此消息:
document.getElementById('theMessageSpan').innerHTML = '<c:out value="${theMessage}"/>';
但是当它显示时,它会显示一个字符串文字
Hello world <b>how are you</b> today?
我需要将消息显示为:
Hello world
你好吗 today?
在将文本放入StringEscapeUtils.unescapeHtml
之前,我尝试使用apache commons'ModelMap
,但结果是一样的。
有什么想法吗?
答案 0 :(得分:2)
我相信默认情况下<c:out>
会转义XML。你需要明确告诉它不要用
<c:out escapeXml="false" value="${theMessage}"/>
无法找到较新的文档,但请参阅here。在这些属性中,您有
escapeXml
确定结果中是否包含字符&lt;,&gt;,&amp;,',“ string应该转换为它们对应的字符实体 码。默认值为true。