Ну. Я создал пользовательский компонент для CRUD, а страница формы - это параметр. В этом случае мне нужны две страницы, одна для определения компонента, а другая - с формой.Объявить разметку вне cc: реализация и позволить cc: реализация включить его
Есть ли способ сделать это?
следующим образом:
Реализация:
Компонент
<cc:interface>
<cc:attribute name="formPage" type="java.lang.String" required="true"/>
.....
</cc:interface>
<cc:implementation>
...
<h:form id="form-crud">
<ui:include src="#{cc.attrs.formPage}" />
</h:form>
...
</cc:implementation>
Page 1: crud.xhtml
<ui:define name="content-template" >
<comp:crud
paginaForm="crud-form.xhtml" />
</ui:define>
Page 2: падла-form.xhtml
<html ...
<p:panelGrid id="grid-crud" columns="2" >
<h:outputLabel for="dsName" value="Name: " />
<p:inputText id="dsName" value="#{crudBean.dsName}"/>
</p:panelGrid>
</html>
Новая реализация (образец)
Для упрощения, я хотел бы иметь компонент defnition и форму на той же странице, что-то вроде этого , Является ли это возможным? Я знаю, что могу использовать шаблон, но пользовательский компонент имеет больше атрибутов.
Новый компонент
<cc:implementation>
...
<h:form id="form-crud">
<XX:SOMETING name="#{cc.attrs.formContent}" />
</h:form>
...
</cc:implementation>
New Page 1: новый-crud.xhtml
...
<ui:define name="content-template" >
<comp:crud
form="new-form" />
<XX:SOMETING id="new-form">
<p:panelGrid id="grid-crud" columns="2" >
<h:outputLabel for="dsName" value="Name: " />
<p:inputText id="dsName" value="#{crudBean.dsName}"/>
</p:panelGrid>
</XX:SOMETING>
</ui:define>
...
Это второй раз, когда я исправил терминологическую ошибку в вашем вопросе. Это не пользовательские компоненты. Это составные компоненты. Чтобы узнать разницу, см. Http://stackoverflow.com/questions/6822000/when-to-use-uiinclude-tag-files-composite-components-and-or-custom-componen – BalusC
ok @BalusC, полученный отзыв! Я обращу внимание на это! –