1

在我的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.

我不确定事情将如何连接在一起,谢谢!

4

2 回答 2

2

控制器应该不了解 Freemarker,它们应该看起来像任何其他控制器,像通常那样构造ModelAndView或。ModelMap获取保存在 中的FreeMarkerViewResolver视图名称,ModelAndView并在内部将其解析为 FreemarkerTemplate对象,从而将您的模型渲染到该对象中。所有 freemarker 配置都是内部的FreeMarkerViewResolver

如果你的上下文没有正确连接,那么FreeMarkerViewResolver会抛出一个异常,但你当然不需要控制器中的任何 freemarker 配置。

于 2010-06-29T06:53:44.300 回答
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

于 2010-06-29T07:20:57.300 回答