请教一个Lift菜单的问题
yangzhan
2009-12-23
如果页面在webapp下,直接用Menu(Loc("Home", List("index"), "Home"))就可以了,但如果菜单不在webapp下,要怎么用呢?或讲解下siteMap的用法,多谢!
|
|
night_stalker
2009-12-23
.html 文件不在 siteMap 声明就不能访问,但是 .css 和 .js 和图片没关系。
如果要添加位置 webapp/post/show.html,可以这样用: Menu(Loc("post-show", List("post", "show"), "post-show")) 对应的路径看中间:就是 http://localhost:8080/post/show 其实第一个和最后一个参数很少会用到(我都忘了都是什么了,随便填个"post-show"吧),保证 Menu 之间互不相同比较好 …… 可以定义个辅助函数方便批量添加:(函数内定义函数 is OK) // 添加 dir 下面一系列的 template def locs(dir: String, filelist: List[String]) = filelist map {file => val name = dir + "-" + file Menu(Loc(name, List(dir, file), name)) } // 假设 post/ 下面有 show.html, new.html, index.html // 假设 group/ 下面有 mars.html, mercury.html LiftRules.setSiteMap( locs("post", List("show", "new", "index")) ++ locs("group", List("mars", "mercury")) ) ps:那个自动生成的导航菜单灰常不好用,建议自己写个 …… 更多可参考 LiftWiki 和 github.com/dpp/liftweb 上的 wiki(讲得很详细) 还可以到 http://scala-tools.org/mvnsites/ 看 API 和源代码 |
|
yangzhan
2009-12-24
多谢多谢!
昨晚试了个 List("post/show") 怎么都不成功。原来要分开写。 |