Перечисляемые значения в атрибуте составного компонента

#attributes #jsf-2 #composite-component

#атрибуты #jsf-2 #составной компонент

Вопрос:

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

<cc:attribute name="type" /> Этот атрибут будет иметь 3 допустимых значения, [TYPE1, TYPE2, TYPE3]

Можно ли сказать, что мой компонент будет принимать только эти значения?

Ответ №1:

К сожалению, нет, вы не можете установить ограничение на время компиляции / сборки для значения атрибута составного компонента в интерфейсе cc. Однако вы можете установить ограничение времени выполнения, проверив значение в реализации cc.

 <ui:param name="type" value="#{cc.attrs.type}" />
<ui:fragment rendered="#{type == 'TYPE1' or type == 'TYPE2' or type == 'TYPE3'}">
    <p>The type is TYPE1, TYPE2 or TYPE3.</p>
    <p>Write your component's body here.</p>
</ui:fragment>
 

Это будет ваш лучший выбор.

Комментарии:

1. Спасибо, для меня это не большая проблема… Но я думаю, что это было бы довольно чисто. Неважно!