h: commandLink с f: ajax не рендеринг - PullRequest
0 голосов
/ 14 мая 2019

После миграции с 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>

1 Ответ

0 голосов
/ 15 мая 2019

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

...