如何创建链接列表

时间:2012-12-12 20:06:20

标签: scala playframework

我想要一个主页,其中包含指向我应用其他部分的链接列表。所以,我没有像<a href="@controllers.routes.SomeModel.show(someModel.ean)">那样使用harcoded hrefs,而是想创建一个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))所以我该怎么做呢?

1 个答案:

答案 0 :(得分: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