Play2とjapid42のサンプルアプリケーションを使用する場合、次のデフォルト構造でjapidのビューを保持していることがわかります。
{your_app}/japidroot/japidview
に変更する方法:({your_app}/app/views ?
標準/クラシックプレイの構造に)
Play2とjapid42のサンプルアプリケーションを使用する場合、次のデフォルト構造でjapidのビューを保持していることがわかります。
{your_app}/japidroot/japidview
に変更する方法:({your_app}/app/views ?
標準/クラシックプレイの構造に)
Ok。私はこれを理解しました。
public class Global extends JapidRenderer {
@Override
public void onStartJapid() {
setTemplateRoot("app");
...
この構成は、「app」フォルダーが japid スクリプトが配置されているルートであることを japid に伝え、「japidviews」フォルダーの検索/ルックアップを試みます。
だから、私がする必要があること:
- app/rapidviews にラピッド テンプレート (html ファイル) を作成する
- setTemplateRoot(..) メソッドを使用して、この「rapidviews」がどこにあるかを japd に知らせます。
「japidviews」でも「views」でも構いません。少なくとも「app」ディレクトリにありますが、外部にはありません。
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);
}
}