小编典典

如何ajax jsf 2 outputLink

ajax

我想制作一个可以在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函数…

问候


阅读 249

收藏
2020-07-26

共1个答案

小编典典

<h:link>并且<h:outputLink>不能被废止。所有JSF2
ajax请求都是按照规范的POST请求。您需要<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>
2020-07-26