Freemarker с пружинным MVC, так на что же будет похоже мое действие? - PullRequest
1 голос
/ 29 июня 2010

В моем 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

Я надеюсь, что кто-то может создать мертвогопростое действие Index, которое создаст ModelAndView и будет использовать freemarker.

Я не уверен, как все соединится, спасибо!

Ответы [ 2 ]

2 голосов
/ 29 июня 2010

Контроллеры не должны знать Freemarker, они должны просто выглядеть как любой другой контроллер, создавая ModelAndView или ModelMap, как обычно.FreeMarkerViewResolver берет имя представления, хранящееся в ModelAndView, и разрешает его внутренне для объекта Template Freemarker, переводя вашу модель в него.Вся конфигурация freemarker является внутренней для FreeMarkerViewResolver

. Если ваш контекст подключен неправильно, FreeMarkerViewResolver сгенерирует исключение на этот счет, но вам определенно не требуется конфигурация freemarker в ваших контроллерах.

0 голосов
/ 29 июня 2010

Вам не нужен 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

...