I18N 字符集编码 Spring-JSP

I18N charset Encoding Spring-JSP

我正在尝试将 é 显示为我的 form:input 字段的标题,但无法正常工作。

示例 1:

<form:input type="text" path="something" title="é"/>

输出:

示例 2:

<input type="text" title="<spring:message code="mySpecialChar" />"/>

输出:

示例 3:

<form:input type="text" path="something" title="<spring:message code="mySpecialChar" />"/>

输出:

错误,我不允许这样做,为了解决这个问题,我尝试了示例 4。

示例 4:

<spring:message code=mySpecialChar" var="mySpecialChar"/>
<form:input type="text" path="something" title="${mySpecialChar}"/>

输出:

如何让我的示例 4 正常工作?

您需要在控制器中取消转义您的值,首先您必须自动装配您的 MessageSource

@Autowired
private MessageSource messageSource;

比您可以使用例如StringEscapeUtils

 String message = messageSource.getMessage("mySpecialChar", null, Locale.getDefault());
 model.addAttribute("mySpecialChar", StringEscapeUtils.unescapeHtml([YOUR VALUE]));

不仅仅是

<form:input type="text" path="something" title="${mySpecialChar}"/>

快速搜索后,我发现我必须将 htmlEscape="false" 添加到我的 <spring:message> 标签中。

Spring:message docs