سؤال

لدي صفحة مع اختيار راديو مع 3 خيارات و Inputtextarea. عندما أضغط على زر إرسال على صفحتي، فأنا بحاجة إلى القيام ببعض عمليات التحقق ... من أجل القيام بذلك، أضع عرضا على الراديو. المشكلة هي أنه عند تنفيذ Validator، أحتاج إلى قيم Inputtextarea والراديو، لكنها تأتي مع القيم القديمة، وليس تلك التي تم تعريفها في الصفحة قبل إرسال الصفحة.

مثال: string.valueof (textarea.getValue ()). يساوي (""). عندما يكون المطلوب أولا ساحة الرمز .valueof (TextAreAoCorrencia.getValue ()) فارغ، ولكن نظرا لأن Textarea كان فارغا، فقد كان من المفترض أن يكون سلسلة فارغة. عندما يتم إرسالها للمرة الثانية، يكون لها قيمة ما كان من المفترض أن يكون لديك في التقديم الأول. أعلم أن هذا له علاقة بهيئة jsf الحياة، لكنني لا أعرف كيفية تحديث هذه القيم؟

شكرا مقدما...

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

المحلول

أثناء تطبيق مرحلة تطبيق طلبات الطلب، سيتم تعيين القيم المقدمة ومتاحة كما submittedValue. وبعد أثناء مرحلة التحقق من الصحة، سيتم التحقق من صحة القيم المقدمة وتحويلها وتعيينها value. وبعد يتم التحقق من صحة المكونات في الترتيب من أعلى أسفل حيث تظهر المكونات في شجرة المكون.

وبالتالي، إذا ظهر المكون المعني فعلا بعد المكون الحالي في شجرة المكون، ستحتاج إلى الحصول على قيمته UIInput#getSubmittedValue() بدلا من UIInput#getValue().

لمعرفة المزيد حول دورة حياة JSF، قد تجد هذه المادة الممارسة الذاتية مفيد.

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