Boot.scala в лифте - PullRequest
       29

Boot.scala в лифте

2 голосов
/ 08 октября 2009

Я пытаюсь изменить boot.scala в lift и сталкиваюсь с забавной ошибкой. Вот что у меня сейчас есть:

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"), "Студент" Вход ")) ::

есть идеи о том, что я могу делать неправильно?

Спасибо.

Ответы [ 3 ]

7 голосов
/ 08 октября 2009

Похоже, вы пытаетесь создать список с минусами, не имея пустой список в конце. Попробуйте вместо этого

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 :_*))
6 голосов
/ 18 июня 2010

Пожалуйста, взгляните также на вики-страницу 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"))
1 голос
/ 08 октября 2009

Неиспользование оператора :: может быть более читабельным:

val entries = List(Menu(Loc("Home", 
                        List("index"), "Home")),
                   Menu(Loc("StudentLogin", 
                        List("studentlogin"), "Student Login")),
                   Menu(Loc("ProviderLogin", 
                        List("providerlogin"), "Provider Login")))
...