условно в JSF - PullRequest
       15

условно в JSF

4 голосов
/ 22 июня 2011

Могу ли я сделать условную логику с JSF, без тегов JSTL?

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

Пока я должен использовать визуализированный атрибут, но там так много дубликатов, с небольшой разницей вуказание идентификатора или нет.

<composite:interface>
    <composite:attribute name="id" />
        ...
</composite:interface>

<composite:implementation>
    <!-- render this when id is specified, id attribute is defined -->
    <h:selectOneMenu 
                id="#{cc.attrs.id}" 
                label="#{cc.attrs.label}"
                value="#{cc.attrs.value}"
                rendered="#{cc.attrs.id != null}" ...>
                ...
    </h:selectOneMenu>

    <!-- render this when id is not specified, id attribute is NOT defined -->
    <h:selectOneMenu 
                label="#{cc.attrs.label}"
                value="#{cc.attrs.value}"
                rendered="#{cc.attrs.id == null}" ...>
                ...
    </h:selectOneMenu>
</composite:implementation>

Любые идеи, чтобы избежать этого дублирования и сделать условные вещи проще?

Спасибо!

1 Ответ

2 голосов
/ 22 июня 2011

Укажите значение по умолчанию id самостоятельно.

<h:selectOneMenu 
    id="#{not empty cc.attrs.id ? cc.attrs.id : 'menu'}" 
    label="#{cc.attrs.label}"
    value="#{cc.attrs.value}">
    ...
</h:selectOneMenu>

В любом случае, он будет уникальным, так как перед ним будет добавлен собственный идентификатор клиента компонента.

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