如果我使用ajax,则不会调用命令按钮的操作

时间:2013-10-14 15:49:31

标签: ajax jsf twitter-bootstrap jsf-2

我有以下问题:

我有一个应该调用方法的按钮,但页面不应该刷新(点击按钮后显示dialog based on bootstrap modal,否则它会消失)。因此,我使用ajax表示单击按钮后不应呈现任何内容。

我之前已经使用过它并且它起作用了。但是在我的代码的最新版本中,只要我使用ajax,就不再调用该方法。如果我删除了ajax部分,则应该调用该方法,但页面会刷新,我不希望这样。

我的代码:

<h:form>
    <ui:fragment rendered="#{bean.condition1}">
        <ui:include src="facelet1.xhtml" />
    </ui:fragment>
    <ui:fragment rendered="#{bean.condition2}">
        <ui:include src="facelet2.xhtml" />
    </ui:fragment>

    <h:commandButton value="Save" action="bean.method">
        <f:ajax execute="@form" render="@none"/>
    </h:commandButton>      
<h:form>

之前我喜欢这样,并且有效:

<h:form>
    <ui:include src="bean.faceletPath" />

    <h:commandButton value="Save" action="bean.method">
        <f:ajax execute="@form" render="@none"/>
    </h:commandButton>      
<h:form>

全心全意,

/ metalhamster

<小时/> 修改

facelet1.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>

<ui:composition>
    <h:panelGrid columns="2">
        <h:outputText value="Name:">
        <h:inputText value="bean.name">
        <h:outputText value="Value:">
        <h:inputText value="bean.value">
    </h:panelGrid>
</ui:composition>

</h:body>
</html>

facelet2.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>

<ui:composition>
    <h:panelGrid columns="2">
        <h:outputText value="Name:">
        <h:inputText value="bean.name">
        <h:outputText value="Text:">
        <h:inputText value="bean.text">
    </h:panelGrid>
</ui:composition>

</h:body>
</html>

0 个答案:

没有答案