我面临一个非常普遍的Spring消息问题,但到目前为止还没有一个简单的解决方案,所以希望这里的每个人都可以给我一点启发。
当前的 Spring MVC 应用程序在 javascript 警报上正确显示西班牙重音字符时存在问题。警报消息现在显示如下:
Por favor elija la fecha de aplicación
但它应该像这样显示:
Por favor elija la fecha de aplicación
当用户验证失败时弹出上述消息,由javascript处理:
alert("<spring:message code='message_miss_duedate' />");
但是如果我将整个西班牙语字符串放入javascript中:
alert("Por favor elija la fecha de aplicación");
输出很好。
问题的原因很明显:&Xacute;
由 Spring 消息中的方法生成,用于将西班牙重音字符转换为 HTML 友好代码,在 html 解析时可以正常工作,但是 javascript 无法识别此类代码。
到目前为止,'EncodingFilter' 设置为 UTF-8
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
与 pom 设置相同:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
那么,在使用 Spring 消息时,是否可以跳过 Spring 的重音字符转换?谢谢。