Pergunta

Estou tentando modificar o boot.scala em levantamento e com um erro engraçado. Isso é o que eu tenho atualmente:

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 :_*))

Eu recebo este erro:

Boot.Scala: 29: Erro: Value :: Não é membro do Net.Liftweb.sitemap.menu Menu (loc ("Studentlogin", List ("Studentlogin"), "Student Login")) ::

Alguma idéia sobre o que eu posso estar fazendo de errado?

Obrigado.

Foi útil?

Solução

Parece que você está tentando construir uma lista com contras sem ter uma lista vazia no final. Tente isso em vez disso

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 :_*))

Outras dicas

Por favor, dê uma olhada na página do Sitemap Wiki também: http://liftweb.assembla.com/wiki/show/liftweb/sitemap

A nova e aprimorada sintaxe do 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"))

Não usar o operador :: pode ser mais legível:

val entries = List(Menu(Loc("Home", 
                        List("index"), "Home")),
                   Menu(Loc("StudentLogin", 
                        List("studentlogin"), "Student Login")),
                   Menu(Loc("ProviderLogin", 
                        List("providerlogin"), "Provider Login")))
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top