FreeMarkerでpublicフィールドを使う[spring+FreeMarker] | モビコム - ほっ!へ~や! -

モビコム - ほっ!へ~や! -

気が向いた時に書いてます。

org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurerを継承したクラスを作り、
afterPropertySetを下記のようにオーバーライドする。



package jp.mobi.hoge;


import
java.io.IOException;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import freemarker.template.Configuration;
import freemarker.template.DefaultObjectWrapper;
import freemarker.template.TemplateException;

public
class MyFreeMarkerConfigurer extends FreeMarkerConfigurer {



 @Override
 public void afterPropertiesSet() throws IOException, TemplateException {
  if (getConfiguration() == null) {
   Configuration configuration = createConfiguration();
   ((DefaultObjectWrapper)configuration.getObjectWrapper()).setExposeFields(true);
   setConfiguration(configuration);
  }

 }


}



このクラスをfreemarkerConfigにbean登録してあげればFTL内でpublicフィールドにアクセスできる。