Frage
Ich versuche, die boot.scala in Lift und läuft in einem lustigen Fehler zu ändern. Dies ist, was ich derzeit haben:
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 :_*))
ich diesen Fehler:
Boot.scala: 29: Fehler: Wert :: ist nicht ein Mitglied der net.liftweb.sitemap.Menu Menu (Loc ( "StudentLogin", List ( "studentlogin"), „Student Login ")) ::
irgendwelche Ideen, was ich tun könnte falsch?
Danke.
Lösung
Sieht aus wie Sie versuchen, eine Liste mit cons zu bauen, ohne am Ende eine leere Liste mit. Versuchen Sie stattdessen
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 :_*))
Andere Tipps
Bitte nehmen Sie sich einen Blick auf die SiteMap Wiki-Seite auch: http: // liftweb .assembla.com / wiki / show / liftweb / SiteMap
Die neue und verbesserte SiteMap Syntax:
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"))
Nicht mit dem Operator :: könnte besser lesbar sein:
val entries = List(Menu(Loc("Home",
List("index"), "Home")),
Menu(Loc("StudentLogin",
List("studentlogin"), "Student Login")),
Menu(Loc("ProviderLogin",
List("providerlogin"), "Provider Login")))