2010-03-31 6 views
5

Должно быть простым, но я не смог найти ответ, я бы хотел разместить компоненты горизонтально, а не вертикально.Горизонтальное размещение компонентов в JSF

То, что я пытаюсь достичь, - это богатая панель инструментов с 2 или более строками. Я пытался сделать это с панелью инструментов, которая имеет panelgrid и два panelgroups так:

<rich:toolbar...> 
    <f:panelgrid columns="1"...> 
    <f:panelgroup id="row1" .../> <-- Should be horizontal placement 
    <f:panelgroup id="row2" .../> <-- Should be horizontal placement 
    <f:panelgrid/> 
<rich:toolbar/> 

Так как я делаю макет panelgroup горизонтальные (Или я должен использовать что-то другое?)

Благодаря!

ответ

4

Возможно, вы уже знаете, что JSF в веб-сервере заканчивается как HTML в webbrowser. В HTML существует несколько способов разместить элементы по горизонтали (в конце концов, с помощью CSS):

  1. Группа их в строковых элементах (как <span> или любой элемент с display: inline;).
  2. Сгруппируйте их в блочные элементы (например, <div> или любой элемент с display: block;) и дать им все float: left;.

для JSF <h:panelGrid> оказывает HTML-<table> элемент, в котором каждый ребенок компонент берется в качестве <td>. Атрибут columns представляет собой максимальное количество <td> элементов в одном <tr> (так что <h:panelGrid> знает, когда положить </tr><tr> в). JSF <h:panelGroup> отображает элемент <span>.

Чтобы достичь пути 1 с помощью JSF, вам просто нужно сгруппировать их в отдельные компоненты <h:panelGroup>.

<rich:toolbar ...> 
    <h:panelgroup id="row1" ... /> 
    <h:panelgroup id="row2" ... /> 
</rich:toolbar> 

Way 2 можно сделать то же самое, но затем с <h:panelGroup layout="block"> вместо и float: left; в их CSS.

+0

Отлично! Спасибо за добавление этой образовательной части. Я сам обучаюсь в JSF и не хватает многих основ ... – Ben

Смежные вопросы