Struts 2.1.8 を使用するときは、次のように freemarker を使用しました。
applicationContext.xml で Bean を構成します。
<bean id="freemarkerManager"
class="org.apache.struts2.views.freemarker.FreemarkerManager"/>
コードで:
try {
ServletContext servletContext = ServletActionContext.getServletContext();
System.out.println(freemarkerManager.getConfig());
Configuration configuration =
freemarkerManager.getConfiguration(servletContext);
Template template = configuration.getTemplate(templateFilePath);
File htmlFile = new File(servletContext.getRealPath(htmlFilePath));
File htmlDirectory = htmlFile.getParentFile();
if (!htmlDirectory.exists()) {
htmlDirectory.mkdirs();
}
Writer out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(htmlFile), "UTF-8"));
template.process(data, out);
out.flush();
out.close();
} catch (Exception e) {
e.printStackTrace();
}
Struts 2.1.8 では問題なく動作しました。
しかし、Struts 2.3.15 を使用するようになったので、動作しません。ロードできませんでしfreemarker.properties
た。ソースコードを読みましたが、問題はメソッドfileManager
で null ですloadSettings()
:
try {
in = fileManager.loadFile(
ClassLoaderUtil.getResource("freemarker.properties", getClass()));
Struts 2.1.8loadSettings()
メソッドでは次のようになります。
InputStream in = null;
try {
in = FileManager.loadFile("freemarker.properties", FreemarkerManager.class);
問題ありません
freemarkerManager
Struts 2.3.15 でどのように使用できるか教えてもらえますか?