Должен ли я использовать Facelets & ldquo; jsfc & rdquo; атрибут?

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

30
задан Lars Tackmann 25 February 2010 в 21:48
поделиться

1 ответ

Как вы сказали, атрибут jsfc существенно полезен, когда вам нужно «преобразовать» прототип HTML в страницу JSF. Например, если у вас есть входной текст HTML:

<input type="text" .../>

, вы можете добавить атрибут jsfc , чтобы преобразовать этот компонент HTML в компонент JSF:

<input type="text" jsfc="h:inputText" .../>

Это эквивалентно написанию следующего кода JSF :

<h:inputText .../>

Как указано в документации Facelets здесь или здесь , атрибут jsfc также может использоваться для «сопоставления» компонентов Facelets. Например, вы можете удалить часть HTML-кода:

<span jsfc="ui:remove">
This won't be compiled either <h:outputText value="#{foo.bar}"/>
</span>

Вы также можете создать таблицу, используя этот атрибут:

<table>
    <tr jsfc="ui:repeat" value="#{dept.employees}" var="emp" class="#{emp.manager ? 'mngr' : 'peon'}">
       <td>#{emp.lastName}</td>
       <td>#{emp.firstName}</td>
    </tr>
</table>

В этом примере мы не связываем эту таблицу с h: datatable компонент, но мы создаем таблицу с кодом HTML, используя компонент JSF ui: repeat для итерации по строкам.

Как видите, атрибут jsfc можно использовать для преобразования одного компонента HTML в один компонент JSF на странице JSF. Поэтому для сложных компонентов, таких как datatable, вам придется использовать некоторые обходные пути (используя ui: repeat вместо компонента h: datatable ).

Другой момент заключается в том, что вы не сможете использовать компоненты третьих библиотек, такие как предлагаемые RichFaces, IceFaces, Tomahawk и так далее. И эти библиотеки действительно являются одним из интересов JSF.

Итак, подведем итог: jsfc может быть полезен для преобразования прототипа HTML в приложения JSF, в основном для создания Proof of Concepts или проектирования общего пользовательского интерфейса. Однако я думаю, что лучше избегать этого компонента, когда начнется «настоящая» разработка ...

35
ответ дан 28 November 2019 в 00:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: