Javascript中的Spring消息:无法正确显示西班牙语重音字符
我面临着一个非常普遍的Spring消息问题,但到目前为止还没有一个简单的解决方案,所以希望这里的每个人都能给我一些启发 当前的SpringMVC应用程序在javascript警报中正确显示西班牙语重音字符方面存在问题。警报消息现在显示如下:Javascript中的Spring消息:无法正确显示西班牙语重音字符,spring,jsp,jakarta-ee,spring-mvc,encoding,Spring,Jsp,Jakarta Ee,Spring Mvc,Encoding,我面临着一个非常普遍的Spring消息问题,但到目前为止还没有一个简单的解决方案,所以希望这里的每个人都能给我一些启发 当前的SpringMVC应用程序在javascript警报中正确显示西班牙语重音字符方面存在问题。警报消息现在显示如下: Por favor elija la fecha de aplicación Por favor elija la fecha de aplicación 但它应该像这样出现: Por favor elija la fecha de
Por favor elija la fecha de aplicación
Por favor elija la fecha de aplicación
但它应该像这样出现:
Por favor elija la fecha de aplicación
Por favor elija la fecha de aplicación
当用户验证失败时,会弹出上述消息,由javascript处理:
alert("<spring:message code='message_miss_duedate' />");
alert("Por favor elija la fecha de aplicación");
输出良好
问题的原因显而易见:&Xacute
是由Spring消息中的方法生成的,用于将西班牙语重音字符转换为HTML友好的代码,在使用HTML解析时效果很好,但javascript无法识别此类代码
到目前为止,“编码过滤器”设置为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>
字符编码滤波器
org.springframework.web.filter.CharacterEncodingFilter
编码
UTF-8
强制编码
真的
与pom设置相同:
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
UTF-8
那么,在使用Spring消息时,是否可以跳过Spring的重音字符转换?谢谢。更新
解决方案非常简单,在spring:message
中使用htmlEscape=“false”
,默认值为true
,因此使用转义字符
所以
因此,在javascript中,我们可以获得与普通JSTL变量类似的消息
alert("${message_miss_duedate}");
但是,like将此方法称为限制,因为很难使用变量处理运行时响应消息,尤其是使用代码模板。客户端警报中的消息是什么样子的?@nif谢谢,消息看起来就像消息中描述的,应该是这样的:“我赞成埃利贾·拉费查·德阿皮利卡翁“,但是,javascript无法解释它。@如果我现在做了一些更改,javascript警报仍然有问题,但看起来不同。请尝试直接在消息中使用UTF-8字符,或使用
nnnn
-AFAIK,HTML实体在XHTML中不受支持。@如果我们有一个相对简单的解决方案,我已经更新了整篇文章,希望能帮助您了解更多的情况。