0

我有一个带有以下代码的弹簧控制器:

@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,但结果是一样的。

有什么想法吗?

4

1 回答 1

3

我相信默认情况下<c:out>会转义 XML。您需要明确告诉它不要使用

<c:out escapeXml="false" value="${theMessage}"/>

找不到较新的文档,但请参见此处。在这些属性中,你有

逃逸Xml

确定结果字符串中的字符 <,>,&,'," 是否应转换为其对应的字符实体代码。默认值为 true。

于 2013-09-18T02:54:02.577 回答