簡短的問題:我想用一個類型的bean作爲Grails中,而不是地圖的模型。這可能嗎?我可以在Grails中使用Bean作爲模型而不是Map嗎?
我想做到這一點:
def index = {
new Person(firstName:"foo", lastName:"bar", age:30)
}
取而代之的是:
def index = {
[firstName:"foo", lastName:"bar", age:30]
}
長的問題:我maintinaing其他開發人員編寫的控制器,這真的很難了解模型中的所有可能條目。該模型通過多種方法進行填充。我想重構控制器來返回一個自定義bean作爲模型,但我希望gsp不需要改變。
我認爲Grails的可以辦理某一地圖或bean作爲一個模式,但很快就意識到,通過一個bean普惠制導致NullPointerException異常作爲屬性找不到。
我意識到,我的控制器可以返回一個地圖,如:
[model: myBean]
但後來我就需要去通過GSP和$ {} someProp更改爲$ {} model.someProp所有引用。
我也知道,我可以使用反射到我的豆轉換成地圖,但我不希望做這一點。
爲什麼不能在地圖是'[someProp:新的Person()]'? ? –
我希望只是改變控制器的代碼,並保持原樣。這需要我通過GSP,用$ {someProp.firstName}替換所有$ {firstName}。這不是一個簡單的查找和替換,因爲GSP中的一些局部變量不需要加前綴。 –
好吧,我明白 - 看到我的回答 –