Який компонент jsf може надати тег div?


129

Напр .: h:inputTextзробить a "input type='text'". Який тег jsf може надати "div"тег?


4
Майте на увазі, що з Facelet та новішими версіями JSF ви можете безкоштовно змішувати стандартні теги HTML зі своїми тегами JSF.
Дрю

Хороший момент, але, на жаль, я застряг із дуже старою версією.
користувач101442

Відповіді:


234

Ви можете створити DIVкомпонент за допомогою <h:panelGroup/>. За замовчуванням <h:panelGroup/>заголовок генерує SPAN у HTML-коді.

Однак якщо ви вкажете layout="block", то компонент буде DIVв генерованому HTML-коді.

<h:panelGroup layout="block"/>

9
Не відображається для мене, якщо я не додаю стиль або клас стилів до групи панелей, використовуючи виконання mojarra-1.2_15.
Джеймс Макмахон

3
Додавання або встановлення атрибута ID. Якщо я цього не роблю, він просто відображається в HTML без навколишніх тегів DIV.
Джеймс Макмахон

1
чи не повинні ми відразу використовувати divтег? У чому може бути проблема, якщо така є?
Раджат Гупта

4
@Marcos Звичайно, ви можете використовувати divтег, але в цьому випадку цей компонент не буде частиною дерева компонентів JSF (тобто недоступний у коді Java). На додаток до цього, ви не зможете оновити його безпосередньо за допомогою Ajax (за винятком, звичайно, якщо ви зробите оновлення безпосередньо в якомусь JavaScript-коді).
Ромен Лінсолас

1
Відповідь - лише половина правди. Дивіться тут docs.oracle.com/javaee/5/javaserverfaces/1.2/docs/tlddocs/h/… або тут docs.oracle.com/javaee/6/javaserverfaces/2.1/docs/vdldocs/… . Важливою інформацією є те, що вам також потрібен один styleабо styleClassатрибут для того, divщоб відбутися ... що робить історію абсолютно дивною IMHO: звичайна <h:panelGroup layout="block">візуалізація буде <span>? Для мене це не має сенсу.
Каву

18

У JSF 2.2 можна використовувати прохідні елементи:

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:jsf="http://xmlns.jcp.org/jsf">
    ...
    <div jsf:id="id1" />
    ...
</html>

Вимога полягає в тому, щоб у елементі був принаймні один атрибут з використанням простору імен jsf.


14

Окрім <h:panelGroup>компонента (який для мене трохи несподіваний), ви можете використовувати <f:verbatim>тег із встановленим параметром escape falseдля створення будь-якої розмітки, яку ви хочете. Наприклад:

<f:verbatim escape="true">
    <div id="blah"></div>
</f:verbatim>

Майте на увазі, що це трохи менш елегантно, ніж panelGroupрішення, оскільки вам доведеться генерувати це як для початкових, так і для кінцевих тегів, якщо ви хочете обгорнути будь-який свій код JSF divтегом.

Крім того, всі основні рамки інтерфейсу мають divтег компонента, або ви можете написати свій власний.


4
не повинні ми відразу використовувати сам тег div? У чому може бути проблема, якщо така є?
Раджат Гупта

3

Ви можете використовувати мій интерфейс компонент tomahawk

http://myfaces.apache.org/tomahawk-project/tomahawk12/tagdoc/t_div.html


Я навіть зняв tomahawk з проекту. Згодом проект був набагато швидшим! Я б не рекомендував використовувати tomahawk!
marcel

1
Я відповідаю на цю відповідь у 2011 році. Зараз я використовую префікси, і це дуже добре
Джек Джин

-3

Я думаю, що ми можемо використовувати тест дослівно, оскільки в цьому тезі ми використовуємо будь-який з тегів HTML


Серйозно? ЧОМУ? Дослівний тег - це те, що було актуальним в епоху jsp. В епоху фасетів (10 років?) Це переважно зайве, безумовно, у цьому випадку.
Kukeltje
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.