在我的项目中,我使用 Velocity 1.7 和 Spring MVC 3.1。下面的源代码显示了如何配置速度 bean:
<bean id="velocityConfig" class="org.springframework.web.servlet.view.velocity.VelocityConfigurer">
<property name="resourceLoaderPath" value="/WEB-INF/views/"/>
</bean>
<bean class="org.springframework.web.servlet.view.velocity.VelocityViewResolver">
<property name="contentType" value="UTF-8" />
<property name="prefix" value="" />
<property name="suffix" value=".vm" />
<property name="exposeSessionAttributes" value="true"/>
<property name="attributes">
<map>
<entry key="authentication">
<bean class="com.myapp.AuthenticatedUserDetails" />
</entry>
</map>
</property>
</bean>
我到处都使用 UTF-8 编码。当我在视图编码中有一个静态文本时,效果很好。问题是当我想在我的 .vm 模板中显示从模型传递的对象的值时。
上面我将身份验证对象传递给每个速度模板。当我想在视图中使用身份验证对象时,例如显示 authentication.username 值时,我遇到了编码问题 - 特殊字符未正确显示。例如,在 authentication.username 中有一个值“Rafał”,但是当我将此值传递给视图时,显示的值是“Rafa?”。
有人有类似的问题吗?我将非常感谢您的帮助。