Движок шаблонов japid42 - изменение директив по умолчанию
Если вы используете Play2 и пример приложения japid42, вы увидите, что он содержит представление japid в следующей структуре по умолчанию:
{your_app}/japidroot/japidview
Как изменить это на: {your_app}/app/views ?
(к структуре стандартной / классической пьесы)
2 ответа
import play.Play;
import play.mvc.Http.RequestHeader;
import play.mvc.Result;
import play.mvc.Results;
import cn.bran.japid.template.JapidRenderer;
import cn.bran.play.JapidController;
public class Global extends JapidRenderer {
@Override
public void onStartJapid() {
setTemplateRoot("japidroot");
setLogVerbose(true);
setKeepJavaFiles(false); // keep the Java code derived from Japid scripts in memory only
}
@Override
public Result onError(RequestHeader h, Throwable t) {
if (Play.application().isProd())
return Results.internalServerError(JapidController.renderJapidWith("onError.html", h, t));
else
return super.onError(h, t);
}
@Override
public Result onBadRequest(RequestHeader r, String s) {
if (Play.application().isProd())
return Results.badRequest(JapidController.renderJapidWith("onBadRequest.html", r, s));
else
return super.onBadRequest(r, s);
}
@Override
public Result onHandlerNotFound(RequestHeader r) {
// usually one needs to use a customized error reporting in production.
//
if (Play.application().isProd() || Play.application().isDev())
return Results.notFound(JapidController.renderJapidWith("onHandlerNotFound.html", r));
else
return super.onHandlerNotFound(r);
}
}
Хорошо. Я понял это.
public class Global extends JapidRenderer {
@Override
public void onStartJapid() {
setTemplateRoot("app");
...
Эта конфигурация говорит japid, что папка "app" является корневой, где находятся сценарии japid, затем она пытается найти / посмотреть папку "japidviews".
Итак, что мне нужно сделать:
- создавать мои быстрые шаблоны (HTML-файлы) в приложении / rapidviews
- пусть japd знает, где находится этот "быстрый просмотр", используя метод setTemplateRoot (..)
Для меня нормально иметь "japidviews", но только "views". По крайней мере, он находится в каталоге "app", но не снаружи.