2013-08-29 2 views
0

Я прочитал интересные статьи о создании собственного рендеринга от Навеена Маурья, Кейта Стрикленда и Мартина Рольфа и задавался вопросом, можно ли сделать то же самое с пользовательскими элементами управления и XPages.Можно ли расширить рендеринг для пользовательского элемента управления или XPages?

Я нашел класс рендеринга для пользовательского элемента управления com.ibm.xsp.Include для пользовательских элементов управления и com.ibm.xsp.ViewRootEx для XPages, но эти классы не могут быть найдены Eclipse.

Что бы я хотел сделать, если это возможно, это изменить сгенерированный html так же, как Мартин Рольф и Кейт Стрикленд в своем примере, но на пользовательском уровне управления и/или xPage, чтобы делать мои изменения один раз, а не для каждого пользовательского контроль.

+0

Вы должны посмотреть на этот проект: http://bootstrap4xpages.openntf.org/ –

+0

Я проверю этот проект. Спасибо за совет. –

ответ

4

com.ibm.xsp.Include и com.ibm.xsp.ViewRootEx - тип визуализатора пользовательского контроля и XPage соответственно. Тип Renderer: не класс Java (хотя из соглашения об именах он может выглядеть как один). Класс Java Renderer определен в теге <renderer-class>, как в приведенном ниже примере.

<render-kit> 
    <renderer> 
    <component-family>javax.faces.SelectOne</component-family> 
    <renderer-type>uk.co.pipalia.type.ReadOnlyRenderer</renderer-type> 
    <renderer-class>uk.co.pipalia.ReadOnlyRenderer</renderer-class> 
    </renderer> 
</render-kit> 

Чтобы получить имя соответствующего визуализатора класса Java для любого элемента управления можно использовать следующий фрагмент кода:

getComponent("controlName").getRenderer(facesContext).getRenderer().getClass().getName(); 

Для XPage класс рендерер com.ibm.xsp.renderkit.html_basic.ViewRootRendererEx2 и пользовательский элемент управления классом рендерера com.ibm.xsp.renderkit.html_basic.IncludeRenderer.

Теперь вы можете использовать эти классы, такие как Martin и Keith, для создания собственного HTML-кода.

+0

Спасибо за информацию. Я сделал быструю попытку, и она компилируется, но это не влияет на вывод кода html. Мне, вероятно, придется потратить больше времени на это! ;-) –

Смежные вопросы