Rae*_*ald 1 freemarker spring-mvc
我的Web应用程序使用Spring MVC和Freemarker.当它在启动后必须首先呈现网页(使用Freemarker 2.3.22)时,它会记录一条警告消息:
Custom EL functions won't be loaded because no ObjectWarpper was specified
Run Code Online (Sandbox Code Playgroud)
(是的,ObjectWarpper错误信息有拼写错误)
不过,我觉得我做了一个ObjectWrapper在我的配置Bean规定:
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/views/" />
<property name="freemarkerSettings">
<props>
<prop key="url_escaping_charset">UTF-8</prop>
<prop key="object_wrapper">DefaultObjectWrapper(2.3.22)</prop>
</props>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
那么我该怎样做才能正确设置ObjectWrapper并防止记录此警告消息?
如果我使用的话,我也有同样的问题default object_wrapper.
小智 6
这个问题也困扰我,我检查了org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer类的源代码,发现没有设置ObjectWrapper的taglibFactory.
所以我扩展FreeMarkerConfigurer类并覆盖getTaglibFactory()方法并替换spring mvc config.这是我的代码:
public class DefaultFreeMarkerConfigurer extends FreeMarkerConfigurer {
@Override
public TaglibFactory getTaglibFactory() {
TaglibFactory tagLibFactory = super.getTaglibFactory();
if (tagLibFactory.getObjectWrapper()==null) {
tagLibFactory.setObjectWrapper(super.getConfiguration().getObjectWrapper());
}
return tagLibFactory;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1327 次 |
| 最近记录: |