EDIT:私の問題は、この例はうまくいきませんでした!ページがメニューに表示されないことです!さらに、パラメータを持たないページをどうすれば処理できますか?リフトで、Menu.paramの動作方法を変更する
Menu.paramの一般的な定義が見つかりません。 Simply Liftにはこの例があり、このフォーラムのコードにはいくつかの言及がありますが、この機能は重要でありながら、私が知る限り、あまり詳しくは書かれていません。
今、私は自分のサイトマップに問題があります。私がsitema Boot.scalaで宣言しているコードはすべて受け入れられているようですが、無視されます。 localhost:8080/journalが404になり、メニュー項目「Autobiography」がサイトマップに表示されません。
このポストは、一方で、このコードのヘルプの呼び出しです。なぜそれは無視されていますか?
一方、David Pollackの例の外で私が「param」であるかどうかは不明ですか? APIにはありません:http://main.scala-tools.org/ mvnsites/liftweb-2.0/framework/scaladocs/net/liftweb/sitemap/Menu $ object。html。
ありがとうございました。
これは私のサイトマップです。 Simply LiftのParamのサンプルを追加して、機能しているかどうかを確認しました。それはしません。
def sitemap = SiteMap(
Menu.i("Home")/"index" >> User.AddUserMenusAfter, // the simple way to declare a menu
Menu.i("Artifact")/"artifact", // Works
// Menu.i("Autobiography")/"journal", // Works if I comment out the next line.
AutobiographyPageMenu.menu,
Menu.param[AutobiographyPage]("Autobiography2", "Autobiography2", // Similar code as previous line. Doesn't work.
pageName => Full(AutobiographyPage(pageName)),
ap => ap.pageName)/"journal2",
Param.menu, // Added to see if D. Pollack's code would work. It didn't.
// more complex because this menu allows anything in the
// /static path to be visible
Menu(Loc("Static", Link(List("static"), true, "/static/index"),
"Static Content")))
これは、スニペットサブパッケージ内のファイルから参照されるコードです。リフトはクラスを見つけることができます:定義されていないことについて彼らは不平を言っていません。
case class AutobiographyPage(pageName: String)
object AutobiographyPageMenu {
val menu = Menu.param[AutobiographyPage]("Autobiography", "Autobiography",
pageName => Full(AutobiographyPage(pageName)),
ap => ap.pageName)/"journal"
// I'm not sure what these two lines are for...
lazy val loc = menu.toLoc
def render = "*" #> loc.currentValue.map(_.pageName)
}
// This code is copied from the Simply Lift book:
// capture the page parameter information
case class ParamInfo(theParam: String)
// a snippet that takes the page parameter information
class ShowParam(pi: ParamInfo) {
def render = "*" #> pi.theParam
}
object Param {
// Create a menu for /param/somedata
val menu = Menu.param[ParamInfo]("Param", "Param",
s => Full(ParamInfo(s)),
pi => pi.theParam)/"param"
lazy val loc = menu.toLoc
def render = "*" #> loc.currentValue.map(_.theParam)
}
私の問題は、この例がうまくいかないことではないことがわかりました。ページがメニューに表示されないことです!さらに、パラメータを持たないページをどうすれば処理できますか? – eje211