إضافة jsf uicomponent كطفل مركب مركب لا يجسد شيئًا
-
27-09-2019 - |
سؤال
لدي مخصص UIComponent
, ، الذي يجعل الموافقة على ما يرام عندما يتم استدعاؤه مباشرة من قالب الوجه الأساسي (أعتقد أن هذا يجعله طفلًا مباشرًا UIComponentBodyTag
). ومع ذلك ، عندما يتم استدعاؤه داخل مكون مركب ، لا يحدث شيء. لا أحصل على استثناءات ، لا شيء. كل شيء آخر يجعل موافق.
لذلك في حين أن هذا يعمل:
<h:body>
<x:myUiComponent />
</h:body>
هذا لا يعمل:
<h:body>
<demo:uiComponentWrapper />
</h:body>
uicomponentwrapper.xhtml:
<cc:implementation>
Before [<x:myUiComponent />] After
</cc:implementation>
يطبع ببساطة Before [] After
.
من خلال منطقي ، يجب أن ينجح هذا. ماذا ينقصني؟ تشغيل Mojarra 2.0.2.
المحلول
يبدو أن UIComponent
'س encodeAll(...)
يتم استدعاؤه عند إضافته إلى الصفحة بشكل طبيعي. لكن، encodeBegin(...)
يسمى بدلاً من ذلك ، عند إضافة المكون كطفل لمكون مركب. تم تعريف مبنى المكون الخاص بي في encodeAll(...)
, ، والتي لم يتم تشغيلها عند إضافة المكون كطفل مكون مركب.
لذلك يختلف فقط في سياقات مختلفة. للسبب ، لماذا هو الحال ، انظر سؤال حول ذلك بالضبط.