Я установил Magnolia с помощью maven, успешно собрал и развернул проект. Я также могу создавать шаблоны и компоненты yaml.
Я хотел бы создать Java модели для доступа к внешним базам данных и добавить бизнес-логи c, но не могу найти, где создавать классы, а документация не обширна в эта область.
В среде IDE Netbeans нет каталога sr c, отображаемого в дереве проекта. Когда я создал пакет и класс jave, я получаю сообщение об ошибке в tomcat:
Детали проблемы: Не удалось разрешить свойство класса из-за отсутствующего класса: [newpackage.NewClass]
Где следует Я создаю классы?
Обновление:
Я создал классы в отдельном проекте Java и поместил банку в web-inf / lib. Теперь я не получаю ошибку отсутствующего класса, но получаю ошибку приведения при рендеринге
Класс:
package com.example;
public class NewClass {
public String getText() {
return "Hello Magnolia!";
}
}
YAML:
modelClass: com.example.NewClass
Шаблон:
<h1>${model.getText()}</h1>
Ошибка:
RenderException: java .lang.ClassCastException: com.example.NewClass не может быть приведен к info.magnolia.rendering.model.RenderingModel
Обновление 2:
Я изменил класс, чтобы расширить Magnolia RenderingModelImpl до этого:
package com.example;
import info.magnolia.module.templating.RenderingModel;
import info.magnolia.module.templating.RenderingModelImpl;
import info.magnolia.rendering.template.configured.ConfiguredTemplateDefinition;
import javax.jcr.Node;
import javax.jcr.PathNotFoundException;
import javax.jcr.RepositoryException;
public class NewClass extends RenderingModelImpl {
public NewClass(Node content, ConfiguredTemplateDefinition definition, RenderingModel<?> parent) throws PathNotFoundException, RepositoryException {
super(content, definition, parent);
}
public static String getText() {
return "Hello World!";
}
}
Теперь он не компилируется и отображает и выводит ошибку для оператора super в конструкторе:
incompatible types: Node cannot be converted to Content