У меня есть следующий код для выполнения, но он задает некоторый связанный с проблемой запрос ajax.Как синхронизировать a4j: jsFunction и actionListener в Jsf
ActionListener вызова на кнопку Нажмите
<a4j:commandButton value="Submit" alt="OligoWalk" styleClass="common_button" onclick="createNewLog();showProgressLayer();" oncomplete="parent.document.getElementById('resultFrm').src ='#{MyResearchView.resultToShow}';parent.reRenderLogSection();" actionListener="#{MyResearchView.executeTool}"> <f:attribute name="toolClass" value="com.sequerome.service.impl.tools.Oligowalk" />
<f:attribute name="toolId" value="#{ToolCustomeFormView.toolId}" /> <f:attribute name="toolName" value="#{ToolCustomeFormView.toolName}" /> <f:attribute name="inputParamFile" value="#{ToolCustomeFormView.inputParamFile}" />
<f:attribute name="paramMap" value="#{ToolCustomeFormView.toolParamBean.paramMap}" />
</a4j:commandButton>
a4j:
<a4j:jsFunction name="createNewLog"
actionListener="#{MyResearchView.createNewLogEntry}"
oncomplete="parent.reRenderLogSection();executeTool();">
<f:attribute name="toolId" value="#{ToolCustomeFormView.toolId}" />
<f:attribute name="toolName" value="#{ToolCustomeFormView.toolName}"/></a4j:jsFunction>
-
createNewLog() должен завершить первую функцию
- executeTool() должен завершить после этого.
В настоящее время он вызывает то же самое, но половина функции createNewLog() выполняет сначала, затем переходит к функции executeTool(). Здесь он выполняет некоторый код для выполнения и снова движется к функции createNewlog(). После этого createNewLog() выполняется, а затем executeTool() выполняется.
<a4j:commandButton value="Submit" alt="OligoWalk" styleClass="common_button" onclick="createNewLog();showProgressLayer();" oncomplete="parent.document.getElementById('resultFrm').src ='#{MyResearchView.resultToShow}';parent.reRenderLogSection();" actionListener="#{MyResearchView.executeTool}"> <f:attribute name="toolClass" value="com.sequerome.service.impl.tools.Oligowalk" />
<f:attribute name="toolId" value="#{ToolCustomeFormView.toolId}" /> <f:attribute name="toolName" value="#{ToolCustomeFormView.toolName}" /> <f:attribute name="inputParamFile" value="#{ToolCustomeFormView.inputParamFile}" />
<f:attribute name="paramMap" value="#{ToolCustomeFormView.toolParamBean.paramMap}" />
</a4j:commandButton>
<a4j:jsFunction name="createNewLog"
actionListener="#{MyResearchView.createNewLogEntry}"
oncomplete="parent.reRenderLogSection();executeTool();">
<f:attribute name="toolId" value="#{ToolCustomeFormView.toolId}" />
<f:attribute name="toolName" value="#{ToolCustomeFormView.toolName}"/></a4j:jsFunction>
ОП не форматировал код, поэтому его проглотили. Я исправил форматирование кода. – BalusC