Вопрос
Я пытаюсь изменить 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 :_*))
Я получаю эту ошибку:
Загрузка.scala:29:ошибка:значение ::не член чистый.liftweb.Карта сайта.Меню Меню(Loc("StudentLogin", Список ("studentlogin"), "Вход студента ")) ::
есть какие-нибудь идеи о том, что я, возможно, делаю не так?
Спасибо.
Решение
Похоже, вы пытаетесь составить список с минусами, не имея пустого списка в конце.Попробуйте это вместо этого
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 :_*))
Другие советы
Пожалуйста, взгляните также на вики-страницу 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"))
Не используя ::оператор мог бы быть более читабельным:
val entries = List(Menu(Loc("Home",
List("index"), "Home")),
Menu(Loc("StudentLogin",
List("studentlogin"), "Student Login")),
Menu(Loc("ProviderLogin",
List("providerlogin"), "Provider Login")))
Не связан с StackOverflow