h: commandLink с f: ajax не отображается

После перехода с 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>

person PutSomeCodeHere    schedule 14.05.2019    source источник
comment
Возможный дубликат обновления Ajax/ рендеринг не работает с компонентом, который имеет атрибут рендеринга   -  person Kukeltje    schedule 15.05.2019


Ответы (1)


На данный момент я переместил все скрипты js CDATA за пределы формы, чтобы иметь возможность их отображать.

person PutSomeCodeHere    schedule 15.05.2019
comment
Тогда я бы ожидал ошибки «вложенных cdata» где-нибудь в консоли вашего браузера. - person Kukeltje; 15.05.2019
comment
Верно ! В разделе предварительного просмотра у меня есть <parseerror>, который прекратил рендеринг в конце CDATA //]]>. - person PutSomeCodeHere; 15.05.2019
comment
Так что в следующий раз исследуйте такие вещи... И вы бы знали заранее и могли бы создать другой вопрос - person Kukeltje; 15.05.2019