如何在Lift中调用来自不同包的代码片段



我试图调用具有相同名称和相同类的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 _ }等。然后调用模板中的代码片段作为V1TestSnippetV2TestSnippet

或者,像

LiftRules.snippets.append {
  case "V1TestSnippet"::"test"::Nil => (new v1.site.snippet.TestSnippet).test _
  case "V2TestSnippet"::"test"::Nil => (new v2.site.snippet.TestSnippet).test _
}

我相信List是模板中以点分隔的代码段名称。

相关内容

  • 没有找到相关文章