2013-04-02 2 views
0

Я использую Liferay для разработки моего приложения и хочу использовать freemarker для разработки шаблона.Не удалось найти шаблон Freemarker в Liferay

Я просто тестировал freemarker. Когда я развертываю свое приложение, он говорит, что шаблон не найден. Я знаю, что файл шаблона должен находиться в папке src. Так что я создал helloworld.ftl в docroot.WEB-INF папку/Src и в коде я пытаюсь получить к нему доступ с помощью заявления

Configuration cfg = new Configuration(); 
Template template = cfg.getTemplate("src/helloworld.ftl"); 

Ошибка заключается в следующем:

java.io.FileNotFoundException: Template src/helloworld.ftl not found. 

Как должен ли я указать путь к папке?

ответ

0

Вы должны получить Ахольд в PortletContext для портлета, и использовать getRealPath, чтобы получить фактический путь к файлу:

String realPath = portletContext.getRealPath("WEB-INF/src/helloworld.ftl"); 
Template template = cfg.getTemplate(realPath); 

Очевидно, что вы действительно хотите, чтобы путь к «WEB-INF/src ", к которому вы можете добавить путь к определенному файлу FTL.

0

Эй, я понял, в чем проблема. здесь я бы поделился этим. Я не загружал шаблон перед тем, как получить шаблон :)

+0

Какое утверждение вы используете сейчас, чтобы загрузить шаблон перед его получением? Мне интересно :) –

+1

Benjamin Seiller: Я пропустил, включая следующее заявление. Я просто пытался получить доступ к этой таблице. Ну вот строка кода, которую я использовал: config.setTemplateLoader (новый ClassTemplateLoader (getClass(), "/")); –

+0

Спасибо за эту дополнительную информацию, может пригодиться когда-нибудь –