Playframework 播放而不是提取代码

Playframework 播放而不是提取代码,playframework,playframework-2.0,Playframework,Playframework 2.0,我正在使用Play-2.0。我有下面的代码片段,其中我试图发布产品列表以及相应的链接。出于某种原因,我当前使用的代码路径输出的HTML格式为:@routes.Products.details(x.ean.toString())。在对此进行注释并取消注释注释路径后,我认为链接生成很好。有人能解释一下发生了什么事吗 @(list: List[Product])(implicit lang: Lang) @main( Messages( "application.name" ) ){ <ul

我正在使用Play-2.0。我有下面的代码片段,其中我试图发布产品列表以及相应的链接。出于某种原因,我当前使用的代码路径输出的HTML格式为:@routes.Products.details(x.ean.toString())。在对此进行注释并取消注释注释路径后,我认为链接生成很好。有人能解释一下发生了什么事吗

@(list: List[Product])(implicit lang: Lang)
@main( Messages( "application.name" ) ){


<ul>
@*
@for(product <- list){
  <li>
    <a href="@routes.Products.details(product.ean.toString())">
      @product.name
    </a>
  </li>
}
*@

@list.map( x =>
  <li>
    <a href="@routes.Products.details(x.ean.toString())">
      {x.name}
    </a>
  </li>

)

</ul>

}
@(列表:列表[产品])(隐式lang:lang)
@main(消息(“application.name”)){
    @* @用于(产品)
  • )
}

编辑:修复了部分不起作用的href。

您的
产品
控制器是否在子目录中?如果是,则必须在routes:
@productDir.routes.Products.detail(product.ean)
之前添加子目录的名称。请记住,如果文件夹也名为product,则必须重命名变量
product
。很抱歉,问题出得不对,两个href在视图中完全相同。让我纠正一下。@Blita:我现在已经纠正了href。产品控制器在控制器目录中。所以你的地图部分不起作用,对吗?糟糕的是,我以前从未在模板中使用过地图,所以我在这里帮不了你。但是为什么在
{x.name}
中使用{}?这是用来访问变量的吗?您是否尝试过
{routes.Products.details(x.ean.toString())}
?@blia:谢谢您的回复。我使用{}是因为x.name和@(x.name)不起作用。我也尝试了{routes.p.d.(x.e.t()),但也不起作用。因此在innerHTML中,只有{}起作用,而在href链接中,没有任何作用。