我试图调用具有相同名称和相同类的2个代码片段方法之一,但这些代码片段位于不同的包中。下面是示例代码:
片段1:
package v1.site.snippet
class TestSnippet {
def test = { println("printed from v1") }
}
片段2:
package v2.site.snippet
class TestSnippet {
def test = { println("printed from v2") }
}
index . html:
<div class="lift:TestSnippet.test"></div>
那么我如何告诉index.html哪个TestSnippet。测试呼叫?这两个包都被添加到我的Boot.scala中。
一个选项:
LiftRules.snippetDispatch.append {
case "V1TestSnippet" => new v1.site.snippet.TestSnippet
case "V2TestSnippet" => new v2.site.snippet.TestSnippet
}
你的代码段必须继承DispatchSnippet并定义def dispatch = { case "test" => test _ }
等。然后调用模板中的代码片段作为V1TestSnippet
或V2TestSnippet
。
或者,像
LiftRules.snippets.append {
case "V1TestSnippet"::"test"::Nil => (new v1.site.snippet.TestSnippet).test _
case "V2TestSnippet"::"test"::Nil => (new v2.site.snippet.TestSnippet).test _
}
我相信List是模板中以点分隔的代码段名称。