سؤال

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

<h:inputText id="fullNameField" value="#{newUserFormBean.fullName}"
       **label="${nlsSupport.label_fullName}"** required="true" size="32"  styleClass="required">                        
               <f:validateLength minimum="3" maximum="64"/>
</h:inputText>

إذا فشل التحقق من صحة الحد الأدنى للطول ، يتم عرض رسالة الخطأ على النحو التالي:

لا تسمية المقدمة هنا: يجب أن يكون الحد الأدنى 3 أحرف

ولكن عندما أقوم بتسمية التصنيف الصلبة بدلاً من تمرير قيمة ديناميكية ، فإنها تعرض رسالة التحقق من صحة صالحة ، مع طباعة اسم التسمية على الشاشة.

<h:inputText id="fullNameField" value="#{newUserFormBean.fullName}"
      **label="Full Name"** required="true" size="32" styleClass="required">      
      <f:validateLength minimum="3" maximum="64"/>
     </h:inputText>

الآن ، إذا فشل التحقق من صحة الحد الأدنى ، يتم عرض رسالة الخطأ على النحو التالي:

الاسم الكامل: يجب أن يكون الحد الأدنى 3 أحرف

لقد نظرت أيضًا إلى وثائق JSF ، وتقرأ أن التسمية تقبل تعبيرات لغة التعبير. فلماذا تم تمرير القيمة الديناميكية لا يتم تقديمها بعد التحقق من صحة الفشل؟

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

شكرًا.

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

المحلول

حصلت على الحل.

كنت أقوم بتحميل حزمة الموارد في XHTML باستخدام

<f:loadBundle basename="com.myproject.i18n.nls" var="nlsSupport" />,

والتي من شأنها أن تسبب مشكلة في تحميل حقل حزمة الموارد على التحقق من صحة AJAX. الآن قمت بتعديلها لتنفيذ دعم AJAX

<a4j:loadBundle basename="com.myproject.i18n.nls" var="nlsSupport" />

وهو يعمل الآن.

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