org.xml.sax.SAXParseException: 在实体引用中, 实体名称必须紧跟在 '&' 后面

org.xml.sax.SAXParseException: 在实体引用中, 实体名称必须紧跟在 '&' 后面。
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) ~[na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177) ~[na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400) ~[na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327) ~[na:1.8.0_121]
	at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1472) ~[na:1.8.0_121]
	

spring boot 使用

spring-boot-starter-thymeleaf

返回页面,在js中使用&&进行判断,返回此异常,是因为thymeleaf是采用xml解析的方式进行替换的,所以javascript中&这样的xml实体转义字符会被识别为转义,所以会出sax解析错误。

xml里面我们怎么解决的?

<![CDATA[ ]]>
<![CDATA[]]>标记所包含的内容为纯文本,不会进行转义

具体用法如下
 

 /*<![CDATA[*/

        if (text != null && text != "") {
            alert(text);
        }

 /*]]>*/
thymeleaf简单使用
<!DOCTYPE HTML>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Title</title>
    <script th:href="@{jquery-1.11.3.js}"></script>
    <script th:inline="javascript">
        var text = [[${name}]];
        /*<![CDATA[*/
        if (text != null && text != "") {
            alert(text);
        }
        /*]]>*/
    </script>
</head>
<body>
    <h1>测试动态页面!!!</h1>
    <h2 th:text="${name}"></h2>
    <div th:if="${not #lists.isEmpty(list)}">
        <h3>列表展示</h3>
        <table>
            <tbody>
                <tr th:each="demo:${list}">
                    <td th:text="${demo.id}"></td>
                    <td th:text="${demo.name}"></td>
                </tr>
            </tbody>
        </table>
    </div>
</body>
</html>
    @RequestMapping("/model")
    public ModelAndView model() {
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.setViewName("home");
        modelAndView.addObject("name", "测试");
        List<Demo> list = new ArrayList<>();
        Demo demo = new Demo("1", "小明");
        Demo demo1 = new Demo("2", "小丽");
        Demo demo2 = new Demo("3", "小张");
        list.add(demo);
        list.add(demo1);
        list.add(demo2);
        modelAndView.addObject("list", list);
        return modelAndView;
    }

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值