Панель Primefaces отображается некорректно

#jsf-2 #primefaces

#jsf-2 #primefaces

Вопрос:

Здравствуйте, у меня возникли проблемы с панелью. Это отображается неправильно. Приведенный ниже код должен отображать два столбца:

  <p:panelGrid id="pnl" columns="3"  >
    <p:row>
        <p:column>
            <h:outputText value="Types" />
                <p:selectOneMenu  id="tipifase" value="#{home.t}" 
                            >
                                    <f:selectItems value="#{home.types}" />
                </p:selectOneMenu>
        </p:column>
    <p:column>
        <h:outputText value="Step 1"   /> <h:inputText value="#{faseAperta.step1}" />
        <f:verbatim><br /></f:verbatim>
        <h:commandLink  action="#{home.search}" > 
                <h:graphicImage value="images/icosearch.gif" style="{border: 0}" />
                    <h:outputText value="ID field" />
         </h:commandLink>
        </p:column>
        <p:column></p:column>
    </p:row>
    </p:panelGrid>
  

К сожалению

 <h:commandLink  action="#{home.search}" > 
                    <h:graphicImage value="images/icosearch.gif" style="{border: 0}" />
                        <h:outputText value="ID field" />
             </h:commandLink>
  

отображается на новой строке под первым столбцом.
Я бы ожидал, что вместо этого будет три столбца. Что-то не так с моим кодом?

Ответ №1:

<f:verbatim><br /></f:verbatim> Тег занимает место в третьем столбце, и именно поэтому ссылка на команду размещена в первом.

Если вы удалите ее, она будет работать.

Ответ №2:

Как указано в другом ответе, <f:verbatim><br /></f:verbatim> занимает место в третьем столбце. Если вы хотите, чтобы ваши компоненты были «уложены вертикально», вы всегда можете использовать h:panelGrid .

 <p:column>
  <h:panelGrid columns="1">
    <h:outputText value="Step 1"   /> <h:inputText value="#{faseAperta.step1}" />
    <h:commandLink  action="#{home.search}" > 
      <h:graphicImage value="images/icosearch.gif" style="{border: 0}" />
        <h:outputText value="ID field" />
    </h:commandLink>
  </h:panelGrid>
</p:column>