i have a navigation with h:commandLinks to set a backing bean und reload parts of the view via ajax. that works as expected but it produces horrible mark up because h:commandLinks have to be in a form element.
the view is as follows:
<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>
is it possible to achieve the same functionality with other jsf elements that dont require a form?
thanks in advance.