/author/ の単純なケースを実行しようとしており、渡された ID に基づいて Lift に Person オブジェクトを作成させようとしています。
現在、著者のスニペットがあります
class Author(item: Person) {
def render = {
val s = item match { case Full(item) => "Name"; case _ => "not found" }
" *" #> s;
}
}
object Author{
val menu = Menu.param[Person]("Author", "Author", authorId => findPersonById(authorId), person => getIdForPerson(person)) / "author"
def findPersonById(id:String) : Box[Person] = {
//if(id == "bob"){
val p = new Person()
p.name="Bobby"
p.age = 32
println("findPersonById() id = " +id)
Full(p)
//}else{
//return Empty
//}
}
def getIdForPerson(person:Person) : String = {
return "1234"
}
}
私がやろうとしているのは、ボックス化された人物オブジェクトを構築し、それを Author クラスのコンストラクターに渡すコードを取得することです。render メソッドで、ボックスがいっぱいかどうかを判断し、必要に応じて続行します。
私が変われば
class Author(item: Person) {
に
class Author(item: Box[Person]) {
機能しなくなりましたが、そのままにしておくと、Full(item) が正しくないため無効になります。val s 行を削除すると機能します (s を item.name に置き換えます)。では、どうすればよいのでしょうか。ありがとう