هل لدى Grails طريقة أنيقة لخصائص مجال النسخ من سلسلة استعلام عناوين URL؟

StackOverflow https://stackoverflow.com/questions/2103149

سؤال

أعرف أن 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));
  }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top