2

我正在尝试修改 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: 错误: value :: is not a member of net.liftweb.sitemap.Menu Menu(Loc("StudentLogin", List("studentlogin"), "Student Login")) ::

关于我可能做错了什么的任何想法?

谢谢。

4

3 回答 3

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 :_*))
于 2009-10-08T15:55:11.417 回答
6

请同时查看 SiteMap wiki 页面: 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"))
于 2010-06-18T05:33:34.063 回答
1

不使用 :: 运算符可能更具可读性:

val entries = List(Menu(Loc("Home", 
                        List("index"), "Home")),
                   Menu(Loc("StudentLogin", 
                        List("studentlogin"), "Student Login")),
                   Menu(Loc("ProviderLogin", 
                        List("providerlogin"), "Provider Login")))
于 2009-10-08T16:44:04.283 回答