مطلوب التحقق من صحة JSF بشكل مشروط في نموذج A4J

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

  •  05-09-2019
  •  | 
  •  

سؤال

أواجه مشكلة صغيرة مع استخدام تعبير تقييم مشروط في JSF / A4J

هنا رمزي

<a4j:form>
         <h:inputText id="id1" value="#{mybean.myvalue}" size="1"
                   required="#{not mybean.condition}"
                   rendered="#{not mybean.condition}"
                   requiredMessage="Put a number in here" />

           <h:selectBooleanCheckbox value="#{mybean.condition}">
                <a4j:support event="onclick" reRender="id1"/>
            </h:selectBooleanCheckbox>

<a4j:commandButton action="#{mybean.myaction}" value="Do something" />

 </a4j:form>

مربع الاختيار منطقي تمكين / تعطيل التحقق من الصحة.

هذا لا يعمل: A4J: CommandButton ببساطة تخطي التحقق من الصحة.

شكرا.

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

المحلول

إذا كان أدخل نصآ فشل التحقق من الصحة (مرحلة التحقق من صحة العملية)، ثم القيمة mybean.condition. لن يتم تحديثه (مرحلة تحديثات العملية). منذ حقل النص يستخدم مطلوب السمة، وهذا أمر محتمل للغاية.

دورة حياة من Richfaces Doc:

alt text
(مصدر: jboss.org.)

في حالة فشل أي مرحلة JSF، يتخطى دورة الحياة لجعل استجابة لتجنب التشغيل على إدخال غير صالح. يمكنك استعمال ال ح: الرسالة و H: الرسائل العلامات لعرض الأخطاء المبلغ عنها (على الرغم من أنك تستخدم AJAX، سيتعين عليك وضعها في شيء سيحصل على إعادة تقديمه.

أنا أظن أنه إذا قمت بتعيين ajaxsingle. سمة على AJ4: الدعم العلامة، سوف تحصل على السلوك الذي تريده. تقول الوثائق أن هذا سيقوم فقط بتقديم القيمة للتحكم، لذلك لن يشارك حقل النص في تطبيقات طلب طلبات الطلب / عملية التحقق من صحة / عملية التحقق من صحة.

نصائح أخرى

ما هو نطاق Mybean؟ إذا كان طلب نطاق الطلب، فسيتم إعادة تعيين قيمتها عند النقر فوق الزر، وقد تتم معالجة حقل الإدخال على الإطلاق (إذا تم تقديمه إلى "False").

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