数据源配置时加上编码转换格式后出问题了:
The reference to entity "characterEncoding" must end with the ';' delimiter
这个错误就是 context.xml中设置数据源链接URL的问题
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/bookstore?useUnicode=true&characterEncoding=UTF-8</param-value>
</context-param>
正确的如下:
<context-param>
<param-name>url</param-name>
<param-value>jdbc:mysql://localhost:3306/bookstore?useUnicode=true&characterEncoding=UTF-8</param-value>
</context-param>
这大概是由xml文件中的编码规则决定要这么变换。
在xml文件中有以下几类字符要进行转义替换:
< | < | 小于号 |
> | > | 大于号 |
& | & | 和 |
' | ' | 单引号 |
" | " | 双引号 |
----------------------------------------------------------------------------------------------------------------
我遇到的问题是使用maven的resouce直接将变量值写到了spring的配置文件中,出现了上述错误。
换到spring的property-placeholder配置资源文件的话就没有问题,据此,估计spring通过配置读取资源文件的话,肯定是对上述问题作了处理,具体源码暂时没看