Grails域類遇到問題。我重寫構造函數從net.sf.json.JSONObject構建域類對象。當我通過控制器檢測對象時,這工作正常。然後我嘗試通過一個測試用例來實例化它,並且得到一個異常:Grails addTo *未創建
沒有簽名的方法:profileplugin.Contact.addToEmails()適用於參數類型:(java.lang.String)values:[something @ something.com]
我還應該指出,這似乎適用於某些類,但不適用於其他類。非常令人沮喪 - 我是新來的Grails,所以如果任何人都能指出我正確的方向,我會非常感激。
這是我的域類代碼。
package profileplugin
import net.sf.json.JSONObject
class Contact
{
static hasMany =
[
phones: String,
faxes: String,
emails: String,
websites: String,
];
Contact() {}; // standard constructor must be specified, or grails dies
Contact(JSONObject source)
{
source.get('emails').each() { this.addToEmails(it); };
source.get('websites').each() { this.addToWebsites(it); };
source.get('phones').each() { this.addToPhones(it); };
source.get('faxes').each() { this.addToFaxes(it); };
};
}
而且這裏有一個例子源JSON字符串...
[
addresses:[],
phones:["(555) 555-7011"],
faxes:[],
emails:["[email protected]"],
websites:["http://www.google.com"]
]
最後,這裏是工作的代碼的版本(以下獲得反饋後):
class Contact
{
def phones = [];
def faxes = [];
def emails = [];
def websites = [];
Contact() {}; // standard constructor must be specified, or grails dies
Contact(JSONObject source)
{
print source;
source.get('phones').each() { this.phones.add(it); };
source.get('emails').each() { this.emails.add(it); };
source.get('websites').each() { this.websites.add(it); };
source.get('faxes').each() { this.faxes.add(it); };
};
}
你能壓縮的樣本項目,所以我們可以看看? – Mengu 2012-01-13 01:35:44