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

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

有什么想法吗?

最佳答案

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

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


找不到较新的文档,但请参见here。在属性中,您有


  escapeXml
  
  确定结果中是否包含字符,&,',“
  字符串应转换为其相应的字符实体
  代码。默认值为true。

10-07 23:37