هل لدى Grails طريقة أنيقة لخصائص مجال النسخ من سلسلة استعلام عناوين URL؟
-
21-09-2019 - |
سؤال
أعرف أن Grails لديه مُنشئ قائم على الخريطة لكائنات المجال ، والتي يمكنك تمرير معاملات عنوان URL إليها وسيطبق إعدادات الحقل المناسبة على الكائن باستخدام الاستبطان ، مثل هذا ...
myDomainInstance = new MyObject(params)
كنت أتساءل عما إذا كانت هناك طريقة مكافئة لأخذ المعلمات وتطبيقها على كائن موجود وتحديث القيم بالطريقة نفسها التي يجب أن يعمل بها مُنشئ الخريطة ، شيء مثل ...
myDomainInstance = params
أو
myDomainInstance = fromParams(params)
هل أنا فقط أتمنى أن أفكر أم أن مثل هذا الشيء موجود؟ يمكنني ترميزه بنفسي ولكن لا أفضل إذا كان موجودًا بالفعل.
شكرًا
المحلول
مقتبس من دليل المستخدم Grails:
obj = MyObject.get(1)
obj.properties = params
تحقق من الوثائق الخاصة بـ "params" ضمن قسم وحدة التحكم لمزيد من المعلومات.
نصائح أخرى
يعتمد الأمر حقًا على ما تحاول القيام به ولكن نهج مكافئ يستخدم بيانات البيانات.
def sc = new SaveCommand()
bindData(sc, params)
هذا يمنحك فائدة استخدام الربط المخصص. إذا دعنا نقول أن تنسيق التاريخ الخاص بك ليس هو التنسيق الافتراضي ، فيمكنك إعادة تعريفه من خلال فول مثل هذا:
public class CustomPropertyEditorRegistrar implements PropertyEditorRegistrar {
public void registerCustomEditors(PropertyEditorRegistry registry) {
registry.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat("dd/MM/yyyy"), true));
}
}