I18N charset编码Spring-JSP

时间:2015-01-06 11:32:38

标签: jsp spring-mvc character-encoding internationalization jstl

我试图将é显示为form:input字段的标题,但我无法使其正常运行。

示例1:

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

输出:

enter image description here

示例2:

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

输出:

enter image description here

示例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}"/>

输出:

Example 4

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

2 个答案:

答案 0 :(得分:1)

你需要在控制器中消除你的价值,首先你需要自动装载你的 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}"/>

答案 1 :(得分:1)

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

Spring:message docs