有一個在電梯框架一個簡單的形式,並與渲染方法處理表單的類:爲什麼提起觸發器的方法?
def render(xhtml:NodeSeq) = {
var name = ""
var role = ""
var human = ""
def register = {
val person = new Person
person.name = name
person.role = role
person.human = if (human == "yes") "true" else "false"
model.create(person)
S.redirectTo("/index")
}
bind("user",
xhtml,
("name" -> SHtml.text(name, name = _)),
("role" -> SHtml.text(role, role = _)),
("human" -> SHtml.text(human,human = _)),
("submit" -> SHtml.submit("Register",register)))
}
當我運行這個例子,例如。我訪問它綁定到根據形式的URL,我得到以下錯誤:
Message: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
...
...
...
epsilon.sjbs.CrudModel$class.create(Sjbs.scala:14)
epsilon.sjbs.PersonModel.create(Sjbs.scala:7)
epsilon.snippet.PersonSnippet.register$1(Snippet.scala:33)
epsilon.snippet.PersonSnippet.render(Snippet.scala:41)
這看起來像寄存器方法甚至跑有上提交沒有點擊,只需訪問該網址。爲什麼?
編輯:這是我原來的實體
@NamedQuery(name = "findAll", query = "select x from Person x")
@Entity class Person extends Id with Name{
@OneToMany(mappedBy="person", cascade=Array(CascadeType.REMOVE))
var participated:java.util.List[Participant] = new java.util.ArrayListParticipant
var role:String = Role.User
var human:String = _
}
但是,嚴重的是,我已經用CastException解決了這個問題,現在訪問頁面並立即重定向到「/ index」 – coubeatczech 2010-08-03 18:14:32