سؤال

أقوم بتصحيح تطبيق JSF أجنبي. المشكلة هي أنني أقدم نموذجًا ، لكن القيم لم يتم تنفيذها.

مع مستمع الطور الذي يمكنني رؤيته ، أن دورة الحياة لا تمر بالكامل ، لذلك قائلة إنها تتخطى المرحلة 2 -5: بعد مرحلة عرض الاستعادة ، تسمى مرحلة استجابة العرض مباشرة. أفتقد قيم تطبيق ، التحقق من الصحة ، تحديث إجراءات النموذج وما إلى ذلك.

لذلك ، يمكن أن تكون هذه مشكلة دجاج وبيغ: 1. لا تسمى المراحل المسؤولة ، لذلك لا يمكن نقل إدخال النموذج الجديد. 2. لا يتعرف النظام على أي مدخلات جديدة وبالتالي يتم تقديمها مباشرة بعد استعادة العرض.

لقد راجعت أنه لا يوجد Call of ResponseComplete () Oder RenderResponse ().

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


تحديث

لدي شك في أن JSF لا يدرك طلب postback ويتعامل مع هذا مثل العرض الأولي. هذا من شأنه أن يفسر ، أنني فقط مرحلة 1 و 6.

كيف يمكنني التحقق ، إذا كان JSF يتعرف على هذا على أنه ملف غير المطلوبة?
كيف يمكنني التحقق ، إذا كان هناك ما هو مناسب تريد فى الحاضر facesContext.

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

المحلول 2

وجدت الحل! أنا آسف ، لكن الأمر كان محددًا للغاية على التطبيق: لم يكن Statemanager المخصص لـ JSF قابلاً للاستخدام مع JSF 1.2. التي تسبب هذا الخطأ الغريب. حصلت على ثابت Statemanager وعمل كل شيء على ما يرام. هذا مرير ويكلف الكثير من الوقت :-(

شكرا لمساعدتكم على أي حال :-)

نصائح أخرى

أنا أقتبس من إجابة نشرتها قبل:

كلما كان UICommand فشل المكون في استدعاء الإجراء المرتبط به ، تحقق مما يلي:

  1. UICommand يجب وضع المكونات داخل UIForm مكون (على سبيل المثال h:form).
  2. لا يمكنك عش مضاعف UIForm مكونات في بعضها البعض (احترس مع ملفات تضمين!).
  3. لا ينبغي حدوث أي خطأ في التحقق/التحويل (استخدام h:messages للحصول عليهم جميعا).
  4. إذا UICommand يتم وضع المكونات داخل UIData المكون ، تأكد من ذلك بالضبط نفس الشيء DataModel (الكائن وراء UIDatavalue السمة) محفوظة.
  5. ال rendered و disabled يجب ألا يتم تقييم سمات المكون وجميع المكونات الأصل false أثناء تطبيق مرحلة قيم الطلب.
  6. تأكد من أن لا PhaseListener أو أي EventListener في سلسلة استجابة الطلب ، غيرت دورة حياة JSF لتخطي مرحلة إجراء الاستدعاء.
  7. تأكد من أن لا Filter أو Servlet في نفس سلسلة الاستجابة للطلب ، منعت طلب FO FacesServlet بطريقة ما.

لأنه في حالتك بالذات ، تم تخطي المراحل 2-5 وأنك متأكد (؟) ذلك FacesContext#renderResponse() لم يتم استدعاؤه ، يمكن خدش الأسباب 3 و 6 و 7 من القائمة. من المحتمل أن يتم خدش الأسباب 4 و 5 ، اعتمادًا على الطريقة التي قمت بها بتصحيح مراحل JSF. التحقيق في الأسباب الأخرى. سنتاتي على السبب 2. تحقق مما إذا كنت لا ترى <form><form></form></form> في مصدر HTML المولد وتراجع هذا في مصدر JSF.

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