2014-06-19 70 views
-1

我有一個導航h:commandLinks來設置一個後臺bean,並通過ajax重新加載部分視圖。它按預期工作,但它會產生可怕的標記,因爲h:commandLink必須位於表單元素中。替代h:在導航中的commandLink

視圖如下:

<h:body> 

<nav> 
    <h:form id="navigation"> 
     <h:commandLink 
       styleClass="#{fragmentsPresenter.isActive('fragment-one.xhtml') ? 'active' : 'inactive'}" 
       action="#{fragmentsPresenter.setActiveView('fragment-one.xhtml')}"> 
      viewOne 
      <f:ajax execute="@this" render="fragment-container navigation" /> 
     </h:commandLink> 
     <h:commandLink 
       styleClass="#{fragmentsPresenter.isActive('fragment-two.xhtml') ? 'active' : 'inactive'}" 
       action="#{fragmentsPresenter.setActiveView('fragment-two.xhtml')}"> 
      viewTwo 
      <f:ajax execute="@this" render="fragment-container navigation" /> 
     </h:commandLink> 
    </h:form> 
</nav> 

<h:panelGroup layout="block" id="fragment-container"> 
    <ui:fragment> 
     <ui:include src="#{fragmentsPresenter.activeView}"/> 
    </ui:fragment> 
</h:panelGroup> 

</h:body> 

是有可能實現與不要求其它形式JSF元件相同的功能?

在此先感謝。

+0

至於說[這裏](http://stackoverflow.com/questions/24287997/dynamic-view-injection-or-routing),隻字中,h :link' –

回答

0

嘗試>>> H:outputLink的

<h:outputLink value="anything.xhtml"><h:outputText value="#{bean.text}" /> 
</h:outputLink> 
相關問題