0

我有以下问题:

我有一个应该调用方法的按钮,但页面不应该被刷新(我在单击按钮后显示一个基于引导模式的对话框,否则它会消失)。因此,我使用 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>

谢谢大家,

/金属仓鼠


编辑:

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>
4

0 回答 0