我想制作一个可以在ajax(所有ajax)上运行的网页。我的意思是..每当您单击一个链接时(我指的是),即可使用来自另一个链接的数据来更改某个div。
例如:
<h:outputLink value="/page.jsf" onclick="myfunction(this); return false;"> My page </h:outputLink>
page.jsf是一个普通的jsf页面…使用页面layout.xhtml显示,如下所示:
<ui:composition template="/layout.xhtml"> <ui:define name="main"> //my content here </ui:define> </ui:composition>
这可能吗?使用Servlet仅获取特定jsf的片段是否可行?
我的最后一个解决方案是使用jquery.load函数…
问候
<h:link>并且<h:outputLink>不能被废止。所有JSF2 ajax请求都是按照规范的POST请求。您需要<h:form>一个<h:commandLink>。
<h:link>
<h:outputLink>
<h:form>
<h:commandLink>
您可以使用以下构造:
<h:form> <f:ajax render=":include"> <h:commandLink value="Home" action="#{menuManager.setPage('home')}" /><br /> <h:commandLink value="FAQ" action="#{menuManager.setPage('faq')}" /><br /> <h:commandLink value="Contact" action="#{menuManager.setPage('contact')}" /><br /> </f:ajax> </h:form> <h:panelGroup id="include"> <ui:include src="#{menuManager.page}.xhtml" /> </h:panelGroup>