我遇到 f:ajax
的问题当我点击提交按钮时,Ajax重新加载所有页面,包括preRenderView(我的@PostConstruct方法)。实际上,我已经在我的getters方法中添加了 System.out.print ,并在点击提交按钮后再次调用它们。
我只想在不重新加载其他组件的情况下执行表单。
我已经尝试过 ui:重复,我也得到了同样的结果。
JSF
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:c="http://java.sun.com/jsp/jstl/core" >
<h:head>
</h:head>
<h:body>
<f:metadata>
<f:event listener="#{mainController.init()}" type="preRenderView" />
</f:metadata>
<h:panelGroup id="clients" >
<c:forEach items="#{mainController.getClients()}" var="client" >
<h:panelGroup layout="block" id="#{client}" >
#{client}
<c:forEach items="#{mainController.getApplications(client)}" var="application" >
<h:panelGroup layout="block" id="#{application}">
#{application}
<h:form id="form_#{application}" >
<h:commandButton value="Try" action="#{mainController.test()}" >
<f:ajax execute="@form" render="@none" />
</h:commandButton>
</h:form>
</h:panelGroup>
</c:forEach>
</h:panelGroup>
</c:forEach>
</h:panelGroup>
</h:body>