gpt4 book ai didi

Struts2.3.15 freemarker集成

转载 作者:行者123 更新时间:2023-12-02 04:08:09 27 4
gpt4 key购买 nike

当我使用 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。我阅读了源代码,问题是 loadSettings() 方法中的 fileManager 为空:

try {
in = fileManager.loadFile(
ClassLoaderUtil.getResource("freemarker.properties", getClass()));

在Struts 2.1.8中loadSettings()方法是这样的:

InputStream in = null;
try {
in = FileManager.loadFile("freemarker.properties", FreemarkerManager.class);

没问题

谁能告诉我如何将 freemarkerManager 与 Struts 2.3.15 结合使用?

最佳答案

您必须像这样初始化freemarkerManager:

FreemarkerManager freemarkerManager = Dispatcher.getInstance().getContainer().getInstance(FreemarkerManager.class);

关于Struts2.3.15 freemarker集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17739863/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com