2012-05-04 2 views
0

У меня есть .xhtml с двумя кнопками командной строки и двумя выходными панелями. Все внутри той же формы. Когда я нажимаю на commandlink, почему мне нужно явно указывать, какие панели вывода нужно отображать? Если ничего не указано, не следует полностью пересмотреть представление на основе следующего описания из Spec (или) Я смешиваю вещи?JSF/Facelets ajax view render issue

Как нам действительно нужно установить action="navigation-rule", когда мы хотим обновить компонент в том же виде?

Link controls are typically used to perform complete form submissions for data storing. 
As a consequence, the <a4j:commandLink> component has the execute="@form" setting by default. 

Любой вход очень ценен.

Вот код для справки:

<h:form> 
     <div> 
      <a4j:outputPanel layout="block"> 
       <!--Tab1 --> 
       <a4j:commandLink 
        id="homeTabLinkId" 
        value="Tab1" 
        actionListener="somelistener" render="contentDIVId"> 
        <h:outputText value=""/> 
       </a4j:commandLink> 
       <!--Hosts Tab --> 
       <a4j:commandLink 
        id="hostsTabLinkId" 
        value="Tab2" 
        actionListener="anotherlistener" render="contentDIVId"> 
        <h:outputText value=""/> 
       </a4j:commandLink> 


      </a4j:outputPanel> 
     </div> 

     <a4j:outputPanel layout="block" id="contentDIVId"> 
      <!-- dynamically gets src based on tab click --> 
      <ui:include id="tabBodyPanel" src="elexpression"/> 
     </a4j:outputPanel> 

     <a4j:outputPanel layout="block" id="anotherdiv"> 
      <h:outputText value="Inside second div"/> 
     </a4j:outputPanel> 

    </h:form> 

ответ

3

Если не указано иное, не следует весь вид воссоздала на основе нижеследующего описания от Spec (или) Я Путаете?

Это относится только к синхронным запросам. Замените <a4j:commandLink> на <h:commandLink>, и вы получите описанное поведение.


Как мы действительно должны установить действие = «навигационно-правила», когда мы хотим обновить компонент в ту же точку зрения?

Количество Методы действия могут просто вернуть null или void. В противном случае представление будет воссоздано, и это не то, что вы хотите, если у вас есть просмотр объектов в представлении.

+0

Hi BalusC: Некоторые, как a4j: commandlink имеет это описание в спецификации, которая меня путала. Другое, если у нас есть запрос с привязкой к бобам, то нужно ли нам указывать action = navigation-rule-id в компоненте? – kosa

+0

Нет, результат «null» или «void» по умолчанию соответствует текущему виду. Разница с бобами, обработанными запросами, заключается в том, что они только что воссозданы по каждому запросу. – BalusC

+0

Отлично! Спасибо за ваше время. – kosa