0

我有一个控制器,可以将 JSON 字符串添加到 Spring MVC 3.2 中的模型中:

@RequestMapping(value = "/")
public String myController(Model model) {
    model.addAttribute("jsonData", "{\"foo\":\"bar\"}");
    return "views/myView";
}

并且视图在 javascript 函数中使用 JSON:

<script type="text/javascript">
    function doSomething () {
        var myObject = <c:out value="${jsonData}" />;
    }
</script>

理想情况下看起来像这样:

<script type="text/javascript">
    function doSomething () {
        var myObject = {"foo":"bar"};
    }
</script>

但是输出是 HTML 编码的,所以在浏览器中看起来像这样:

<script type="text/javascript">
    function doSomething () {
        var myObject = {&#034;foo&#034;:&#034;bar&#034;};
    }
</script>

如何防止字符串被 HTML 编码?

4

2 回答 2

2

只是不要使用<c:out>,因为它独特且唯一的效果就是转义 HTML 特殊字符:

function doSomething () {
    var myObject = ${jsonData};
}
于 2013-08-26T20:42:03.563 回答
1

你可以试试<c:out escapeXml="false" value="${jsonData}" />

于 2013-08-26T20:43:28.993 回答