在appname-servlet.xml
我有:
<!-- freemarker config -->
<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">
<property name="templateLoaderPath" value="/WEB-INF/freemarker/"/>
</bean>
<!--
View resolvers can also be configured with ResourceBundles or XML files. If you need
different view resolving based on Locale, you have to use the resource bundle resolver.
-->
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value=""/>
<property name="suffix" value=".ftl"/>
<!-- if you want to use the Spring FreeMarker macros, set this property to true -->
<property name="exposeSpringMacroHelpers" value="true"/>
</bean>
所以我的HomeController.java
索引视图位于:/web-inf/freemarker/index.ftl
我希望有人可以创建一个简单的简单索引操作,创建ModelAndView
并使用freemarker
。
我不确定事情会怎样连在一起,谢谢!
答案 0 :(得分:2)
控制器应该不了解Freemarker,它们应该像任何其他控制器一样,按照正常情况构建ModelAndView
或ModelMap
。 FreeMarkerViewResolver
获取ModelAndView
中保存的视图名称,并在内部将其解析为Freemarker Template
对象,将模型渲染到该对象中。所有freemarker配置都在FreeMarkerViewResolver
如果您的上下文没有正确连接,那么FreeMarkerViewResolver
会抛出异常,但您当然不需要在控制器中添加任何freemarker配置。
答案 1 :(得分:0)
我认为你不需要freemarkerConfig。只需更改视图解析器:
<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver">
<property name="cache" value="true"/>
<property name="prefix" value="/WEB-INF/freemarker/"/>
<property name="suffix" value=".ftl"/>
<property name="exposeSpringMacroHelpers" value="true"/>
</bean>
现在,如果你打开hppt:// localhost:8080 / app / index,你将会得到渲染/WEB-INF/freemarker/index.ftl