Могу ли я объявить Composite-Component, используя только файл xhtml, и при этом иметь возможность использовать компонент в коде JAVA

Я пытаюсь создать составной компонент, используя простые теги jsf, не используя преимущества UIComponent. Я имею в виду, что я не хочу реализовывать компонент путем наследования от UIComponentBase,UIComponentBase и т. Д. Однако после реализации я хочу иметь возможность использовать компонент в коде JAVA. Например, рассмотрим составной компонент ниже (давайте назовем его MYcompositeComponent):

<html xmlns="http://www.w3.org/1999/xhtml"   
    //...
    xmlns:composite="http://java.sun.com/jsf/composite">
        <composite:interface>
            <composite:attribute name="anything" />
        </composite:interface>
        <composite:implementation>
            #{cc.attrs.anything}
        </composite:implementation>
</html>

Затем я хочу использовать этот компонент в классе JAVA, как показано ниже:

public class JavaClass {
    private MYcompositeComponent mYcompositeComponent;
    // ....
}

1 ответ

На этот вопрос были похожие ответы. OmniFaces имеет служебный метод под названием Components.includeCompositeComponent(UIComponent parent, String libraryName, String resourceName, String id) который добавит ваш компонент в другой UIComponent программно. Это вернет составной компонент и

... которые могут при необходимости использоваться для установки пользовательских атрибутов или выражений значений.

Другие вопросы по тегам