0

アプリの他の部分へのリンクのリストを含むホームページが必要です。<a href="@controllers.routes.SomeModel.show(someModel.ean)">したがって、私が考えたようにハードコーディングされた href を使用する代わりに 、コントローラーを介してそのページに渡すことができるリンクのリストを含む Link オブジェクトを作成し、各リンクをレンダリングします。しかし、実際にリンクを参照する方法については明確ではありません。

 case class Link(name: String, route: String)

    object Link {
      val links = Set(Link("SomeModels", controllers.SomeModels.list.toString()),
        Link("Products", controllers.Products.list.toString()))

      def allLinks = links.toList
    }

そして、私はこれを次のように使いたかった:

@(links: List[Link])(implicit flash: Flash, lang: Lang)
@main("welcome to my awesome play app") {
<dl class="models">
    @for(link <- links) {
    <dt>
        <a href=@link.route>
            @link.name
        </a>
    </dt>
    }
</dl>
}

しかし、それらは実際にリンクしてhttp://localhost:9000/Action(parser=BodyParser(anyContent))いるため、明らかに機能しません。どうすればこれを行うことができますか?

4

1 に答える 1

1

「コントローラー」とコントローラー名の間に「.routes」を配置し、「url」メソッドを使用する必要があります。

case class Link(name: String, route: String)

object Link {
  val links = List(Link("SomeModels", controllers.routes.SomeModels.list.url),
    Link("Products", controllers.routes.Products.list.url))

  def allLinks = links.toList
}

Play 2.0.4 の作業コードで要旨を作成しました: https://gist.github.com/4275931

于 2012-12-13T11:47:06.787 に答える