سؤال

لقد قمت بإنشاء مكون مركب JSF لتمديد H: InputBox

        <p class="label clear">
            <label for="#{cc.attrs.id}" class="">
                #{cc.attrs.label}:
            </label>
        </p>
        <p>
            <h:inputText id="#{cc.attrs.id}" value="#{cc.attrs.value}" 
                size="#{cc.attrs.size}" />
            <ui:fragment rendered="#{cc.attrs.optional eq 'optional'}">
                <span class="optional">Optional</span>
            </ui:fragment>
        </p>

لاستخدام هذا المكون ..

<my:inputText id="firstName" label="First Name" value="#{nameTO.firstName}"/>

عندما يتم تقديم هذا المكون على المتصفح ، يكون المعرف من التنسيق "FirstName: FirstName".

<input type="text" value="" name="firstName:firstName" id="firstName:firstName" gtbfieldid="3028">

هل هذه اتفاقية تسمية قياسية مع قوالب JSF 2.0؟ لم أحصل على هذا باستخدام قوالب الوجه JSF 1.2. هل هناك أي طريقة لإنشاء المعرف باعتباره مجرد "اسم أول" بدلاً من "FirstName: FirstName"

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

المحلول

مكون مركب JSF 2.0 ليس هو نفسه قالب الوجه JSF 1.x/2.x.

المكون المركب له معرفه الخاص أيضًا. أنت تعيد استخدامه بشكل أساسي على المكونات في تنفيذ المكون المركب. قد ترغب في التفكير في إضافة أو إعادة تسمية سمة معرف آخر للمكونات في التنفيذ. على سبيل المثال

<my:inputText name="firstName" label="First Name" value="#{nameTO.firstName}" />

مع

<h:inputText id="#{cc.attrs.name}">

ومع ذلك ، سينتهي الأمر id="ccId:firstName" في HTML حيث ccId هو إما ثابت أو تلقائي id من my:inputText. يمكنك أيضًا تركه بعيدًا واستخدامه

<h:inputText id="input">

الذي ينتهي به id="firstName:input" في HTML.

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