Как визуализировать различные теги пользовательского интерфейса: повторить - PullRequest
0 голосов
/ 29 ноября 2011

Я разрабатываю приложение в JSF 2.0.В приложении должна быть страница, где пользователи могут создавать шаблоны документов.Это сопоставимо с функцией формы документов Google.Например, пользователи должны иметь возможность определить, где в шаблоне им нужен inputText, textArea или selectBooleanCheckbox.Я разработал суперкласс UiDocumentElement и подклассы UiTextarea, UiInputText, ....

Теперь мне было интересно, как я могу отобразить такой шаблон документа на моей странице XHTML.У моего компонента поддержки будет DataModel с объектами UiDocumentElement.Но как я могу использовать пользовательский интерфейс: повтор для отображения различных типов тегов пользовательского интерфейса?Или я должен попробовать другой дизайн для достижения этой цели?

На самом деле речь идет о решении этой проблемы:

 <h1>#{backingBean.templateTitle}</h1>

<ui:repeat value="#{backingBean.uiDocumentElements}" var="uiElement">        
    <label>
        <span>#{uiElement.label}</span>
        <!-- here the application should know whether to render an inputText, an inputTextarea or a selectBooleanCheckbox with the attribute value="#{uiElement.value}" -->
    </label>        
</ui:repeat>

Любая помощь будет принята с благодарностью.: см. Комментарий BalusC со ссылкой на связанный вопрос.

1 Ответ

1 голос
/ 29 ноября 2011

Проще всего было бы управлять 3-компонентным блоком с помощью атрибута rendered:

<h:inputText value="#{uiElement.value}" rendered="#{uiElement.type == 'input'}"/>
<h:inputTextarea value="#{uiElement.value}" rendered="#{uiElement.type == 'textArea'}"/>
<h:selectBooleanCheckbox value="#{uiElement.value}" rendered="#{uiElement.type == 'checkbox'}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...