Java playframework2.0中的自定义标记或在模板中执行相等操作
我需要在模板中执行equals比较,以便进行条件渲染 例如,我有Java playframework2.0中的自定义标记或在模板中执行相等操作,java,playframework-2.0,Java,Playframework 2.0,我需要在模板中执行equals比较,以便进行条件渲染 例如,我有。在这里,我只希望在@request.path和@controllers.routes.Application.action()相等时呈现active,否则可以使用空白字符串 中所述的if语句似乎在识别偏执方面受到限制,因此不起作用 或者,如果您可以帮助我创建一个自定义标记,这也可以工作。没有关于如何做到这一点的文档。我更喜欢java。如果有scala的替代方案,请在冗长方面犯错,因为我还没有弄清楚 谢谢。如果没有自定义标记,您可以
。在这里,我只希望在@request.path
和@controllers.routes.Application.action()
相等时呈现active,否则可以使用空白字符串
中所述的if语句似乎在识别偏执方面受到限制,因此不起作用
或者,如果您可以帮助我创建一个自定义标记,这也可以工作。没有关于如何做到这一点的文档。我更喜欢java。如果有scala的替代方案,请在冗长方面犯错,因为我还没有弄清楚
谢谢。如果没有自定义标记,您可以在模板中尝试以下操作:
<li class="@("active".when(request.path == controllers.routes.Application.action().toString()))">
示例应用程序中有一个示例(samples/java/forms/app/views/main.scala.html)。不要忘记toString(),因为action()返回的是调用,而不是字符串)。 要执行此操作的自定义标记可以是:
@menu_element(name: String, route: Call) = {
<li class="@("active".when(route.toString() == request.path))"><a href="@route">@name</a></li>
}
@菜单元素(名称:字符串,路由:调用)={
}
使用示例:
<ul>
@menu_element("Home", controllers.routes.Application.index)
</ul>
@菜单元素(“主”,控制器。路由。应用程序。索引)
谢谢,工作很有魅力。我使用了标签版本,并做了一个小改动@Messages(name)
并传递了i18n代码。同时将标签放在一个单独的文件中,以便删除菜单元素