سؤال

أنا استخدم ويكيت-CDI لدمج CDI مع الويكيت.لدي تدفق "معالج" متعدد الصفحات، حيث يقوم المستخدم بإكمال نماذج مختلفة باستخدام حبة تم وضع علامة عليها @ConversationScoped.

يعمل التدفق بشكل جيد، لكن لا يمكنني معرفة كيفية "إعادة ضبط" الحبة عندما أنهي المحادثة بشكل صريح.لدي رابط "البدء من جديد" الذي يقوم بما يلي:

public void onClick() {
    conversation.end();
    setResponsePage(WizardFlowPage1.class);
}

لقد تحققت من استدعاء مُنشئ الصفحة الخاص بي وأن المحادثة تحصل على معرف معرف جديد، ولكن وحدة المحادثة التي تم إدخالها هي نفس مثيل التدفق السابق (مع احتفاظ جميع الحقول بقيمها السابقة).

الإصلاح البسيط هو إضافة reset() طريقة للفاصوليا وإعادة تعيين الحقول، ولكن يبدو أن هذا بمثابة اختراق (وعرضة للخطأ إذا أضفت حقلاً جديدًا لاحقًا).

كيف يمكنني إقناع CDI/Weld بإنشاء مثيل جديد لوحدة المحادثة عند انتهاء المحادثة؟

هل كانت مفيدة؟

المحلول

اتضح أن وحدة المحادثة الخاصة بي تحتوي على بعض الحقول التي تفتقد الحروف والأرقام.الويكيت PropertyModel يسمح لك بالابتعاد عن هذا كوسيلة راحة.

إضافة الحروف والمستوطنين جعلها متوافقة مع اتفاقيات JavaBean, ، وسمح لـ CDI بالقيام بعملها بشكل صحيح.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top