Почему компоненты другой формы проверены с помощью JSF 2.3? - PullRequest
0 голосов
/ 29 октября 2018

Я только что обновился до JSF 2.3 и Wildfly 14 (с 2.0 и 13) и простых лиц 6.2.5.

Я заметил странное поведение, когда использую командную кнопку. У меня есть 2 формы, и когда нажата кнопка первой формы, ввод второй формы проверяется, и ошибка (в данном случае требуемые ошибки) отображаются в сообщении p:

<h:form id="form1" prependId="false">
    <p:commandButton id="save" value="Save" actionListener="#{myBean.save()}" update="@form">
        <f:actionListener binding="#{myBean.reloadResults()}" />
    </p:commandButton>
    <p:messages id="msgs" severity="error,warn" escape="false">
        <p:autoUpdate />
    </p:messages>
...     
</h:form>

<p:dialog >
    <h:form id="form2" >
        <p:messages severity="error,warn" escape="false">
            <p:autoUpdate />
        </p:messages>
        <div>
            <p:calendar id="myDate" value="#{myBean.myDate}" required="true" />
        </div>
        ...     
    </h:form>
</p:dialog>

Я ожидал, что будет обработано и проверено только содержимое первой формы. Это было в случае с wildfly 13 и jsf 2.0.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Я должен извиниться за то, что не опубликовал весь код, но это было бы слишком. Я выяснил, в чем проблема. Это связано с этой ошибкой:

https://github.com/primefaces/primefaces/issues/4122

У меня есть панель из 4 столбцов, но с 10 элементами.

Вся связь ajax была прервана. Исправление в PF 6.3

0 голосов
/ 31 октября 2018

Вы не указали атрибут процесса в вашей командной кнопке. Значение по умолчанию это @all, которое будет проверять все формы. Пожалуйста, используйте process = "@ form", чтобы избежать проверки и обработки другой формы.

Обновлен код как показано ниже:

<p:commandButton id="save" value="Save" actionListener="#{myBean.save()}" update="@form" process="@form">
        <f:actionListener binding="#{myBean.reloadResults()}" />
    </p:commandButton>
...