我正在尝试修改电梯中的boot.scala并遇到一个有趣的错误。这就是我目前所拥有的:
val entries = Menu(Loc("Home", List("index"), "Home")) ::
Menu(Loc("StudentLogin", List("studentlogin"), "Student Login")) ::
Menu(Loc("ProviderLogin", List("providerlogin"), "Provider Login"))
LiftRules.setSiteMap(SiteMap(entries :_*))
我收到此错误:
Boot.scala:29:错误:值::不是 net.liftweb.sitemap.Menu的成员 菜单(Loc(“StudentLogin”,列表(“studentlogin”),“学生 登录“))::
关于我可能做错什么的任何想法?
感谢。
答案 0 :(得分:7)
看起来你正在尝试使用cons构建一个列表,但最后没有空列表。试试这个
val entries = Menu(Loc("Home", List("index"), "Home")) ::
Menu(Loc("StudentLogin", List("studentlogin"), "Student Login")) ::
Menu(Loc("ProviderLogin", List("providerlogin"), "Provider Login")) ::
Nil
LiftRules.setSiteMap(SiteMap(entries :_*))
答案 1 :(得分:6)
请同时查看SiteMap维基页面:http://liftweb.assembla.com/wiki/show/liftweb/SiteMap
新的和改进的SiteMap语法是:
def siteMap() = SiteMap(
Menu(S ? "Home") / "index",
Menu(S ? "About") / "about" / "index" submenus (
Menu(S ? "Management") / "about" / "management",
Menu(S ? "Goals") / "about" / "goals"),
Menu("directions", S ? "Directions") / "directions" >> Hidden,
Menu(S ? "Admin") / "admin" / "index" >> If(loggedIn_?, "You must be logged in"))
答案 2 :(得分:1)
不使用::运算符可能更具可读性:
val entries = List(Menu(Loc("Home",
List("index"), "Home")),
Menu(Loc("StudentLogin",
List("studentlogin"), "Student Login")),
Menu(Loc("ProviderLogin",
List("providerlogin"), "Provider Login")))