После перехода с Wildfly 8 на 16 и с Java 8 на 11 я столкнулся с этой проблемой, которая влияет на JSF h:commandLink
и f:ajax
.
Я пытался отрендерить :mainform
, mainform
, @form
... Но ничего не работает. Мне приходится вручную перезагружать страницу, чтобы увидеть изменения.
<h:form id="mainform">
<div id="adiv">
...
<h:commandLink value="Change statut" styleClass="grey" rendered="#{not bean.condition}">
<f:ajax event="click" listener="#{bean.switchStatus}" execute="@this" render="@form" />
</h:commandLink>
</div>
</h:form>
Все было правильно с WF8 и java 8.
Как я могу это решить?
Редактировать: я пробовал с Richfaces и a4j:commandLink
:
<a4j:commandLink value="Click here" reRender="@form" actionListener="#{bean.switchStatus}"/>
а также
<a4j:commandLink value="Click here" render="@form" execute="@form" actionListener="#{bean.switchStatus}"/>
По-прежнему нет рендеринга.. Статус изменен, но форма страницы не обновляется.
Изменить: после некоторых исследований кажется, что это ошибка с рендерингом javascript: рендеринг работает, когда я удаляю эту функцию:
<script type="text/javascript">
//<![CDATA[
var interval;
function countDown(){
var countdown=$("#countdown");
var count=20;
if(interval){
clearInterval(interval);
}
interval=setInterval(function(){
count--;
if(count > 0) {
countdown.text(count);
} else {
clearInterval(interval);
interval=undefined;
$("#cancelLnk").remove();
}
},1000);
}
function onCancel(data){
if(data&&data.status=="begin"&&interval){
clearInterval(interval);
interval=undefined;
}
}
//]]>
</script>