#java #freemarker
#java #freemarker
Вопрос:
Получая приведенное ниже исключение, у кого-нибудь есть решение для этого, также как показано в руководстве по mongodb, на самом деле это .ftl, здесь я предоставил HTML-файл, и я не могу создать.файл ftl
package com.mongodb;
import freemarker.template.Configuration;
import freemarker.template.Template;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
/**
* Created by tadoori on 10/20/2016.
*/
public class HelloworldFreemarkerStyle {
public static void main(String[] args) {
Configuration configuration = new Configuration();
configuration.setClassForTemplateLoading(HelloworldFreemarkerStyle.class, "/");
try {
Template helloTemplate = configuration.getTemplate("hello.html");
StringWriter writer = new StringWriter();
Map<String, Object> helloMap = new HashMap<String, Object>();
helloMap.put("name", "Freemark");
helloTemplate.process(helloMap, writer);
System.out.println(writer);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Это показано ниже при запуске файла java
java.io.FileNotFoundException: resources does not exist.
at freemarker.cache.FileTemplateLoader$1.run(FileTemplateLoader.java:125)
at java.security.AccessController.doPrivileged(Native Method)
at freemarker.cache.FileTemplateLoader.<init>(FileTemplateLoader.java:122)
at freemarker.cache.FileTemplateLoader.<init>(FileTemplateLoader.java:108)
at com.mongodb.HelloworldFreemarkerStyle.main(HelloworldFreemarkerStyle.java:23)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Комментарии:
1. попробуйте передать абсолютный путь для шаблона или отладки и проверить, какой путь вызывается
2. Теперь после прохождения абсолютного пути «C:UserstadooriM101Jsrcresourceshello.html » теперь в нем указано исключение java.io.FilenotFoudException: ресурс не существует
3. конфигурация.setClassForTemplateLoading(HelloworldFreemarkerStyle.class, «C:\Users\tadoori\M101J\src\resources\hello.html «);
4. прокомментируйте эту строку и попробуйте с первой попытки
5. хорошо, я прокомментировал и запустил его …. это приводит к следующему выводу java.io.FileNotFoundException: ресурсы не существуют.
Ответ №1:
Я попробовал этот код в своем тестовом проекте, созданном с помощью Idea2016 (freemarker v.2.3.23), и он работает идеально.
import freemarker.template.Configuration;
import freemarker.template.Template;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
System.out.println("Hello World!");
Configuration configuration = new Configuration();
try {
Template helloTemplate = configuration.getTemplate("hello.html");
StringWriter writer = new StringWriter();
Map<String, Object> helloMap = new HashMap<String, Object>();
helloMap.put("name", "Freemark");
helloTemplate.process(helloMap, writer);
System.out.println(writer);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Файл hello.html находится в корневом каталоге проекта.
Комментарии:
1. Привет, спасибо за ответ, на самом деле это проблема с Windows 7, я думаю, потому что я попробовал в Windows 10, и это сработало