4

我有一个用@With 标记的控制器

@With(InitPages.class)
public class Application extends Controller {

    public static Result index() {

        return ok(mainpage.render());
        //return ok(index.render("Your new application is ready."));
    }

}

这个 InitPages 类正在执行以下操作:

public class InitPages extends Action.Simple {

    public Result call(Http.Context ctx) throws Throwable {

        List<CustomPage> pages = CustomPage.find.all();
        ctx.args.put("pages", pages);

        Logger.info("Calling action for " + ctx);
        return delegate.call(ctx);
    }
}

我想将“pages”变量放在scala模板中,正确的做法是什么?Play Framework 在其文档中描述它应该这样做,因此将对象放在请求映射中,但是我如何在 scala 模板中显示它?

我尝试了不同的版本:

@for(page <- request.pages) {
   <li class="parent"> <a href="#sds"> @page.title </a> </li>
}

@for(page <- pages) {
   <li class="parent"> <a href="#sds"> @page.title </a> </li>
}

但没有运气 http://www.playframework.org/documentation/2.0/JavaActionsComposition

4

1 回答 1

0

我没有使用过 Play 2.0 的 Java 版本,只使用了 Scala,但有几个地方我觉得你可能有错误(我可能错了):

  • 通常请求对象(除非您以某种方式对其进行了扩展,如果是,请附上代码),没有“页面”成员。你可能想调用方法get("pages")
  • 页面已添加到 Context,但您尝试从请求中检索它。它们是等价的吗?您是否以某种方式复制了数据?或者您需要做的是访问 Response 对象?
于 2012-04-27T09:32:05.490 回答