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