Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript中的Spring消息:无法正确显示西班牙语重音字符_Spring_Jsp_Jakarta Ee_Spring Mvc_Encoding - Fatal编程技术网

Javascript中的Spring消息:无法正确显示西班牙语重音字符

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

我面临着一个非常普遍的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 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中不受支持。@如果我们有一个相对简单的解决方案,我已经更新了整篇文章,希望能帮助您了解更多的情况。