java中的静态资产

时间:2016-08-30 03:53:45

标签: scala playframework static-assert

我在数据库中保存路径,当我在视图中使用它时

putchar(0)

photo.getPath()无法正常工作,我尝试使用@ photo.getPath()仍无法正常工作。对我有任何建议。我使用play-java 2.5版。非常感谢。

1 个答案:

答案 0 :(得分:1)

就个人而言,我发现Twirl语法有点不直观。 @标记了scala语句的开头。该语句的长度是自动确定的。

现在查看img代码:

<img src="@routes.Assets.versioned("images/photo.getPath()")" class="img-rounded" alt="Cinque Terre" width="304" height="236">

应将以下代码标识为单个语句:

routes.Assets.versioned("images/photo.getPath()")

从scala的角度来看,"images/photo.getPath()"只是String。它不会在photo对象上执行任何方法。我认为(我没有对此进行测试)您可以通过s"images/${photo.getPath()}"替换此部分来解决您的问题。请注意,string interpolation将确保将调用photo对象上的方法。

这会使您的示例看起来像:

@for(photo <- photos) {
    <img src="@routes.Assets.versioned(s"images/${photo.getPath()}")" class="img-rounded" alt="Cinque Terre" width="304" height="236">
}