Проблема с отправкой формы в JSF + PrimeFaces после использования widgetvar - PullRequest
0 голосов
/ 21 февраля 2019

Я использую widgetVar, чтобы включить командную кнопку через javascript для какого-либо события.Однако после включения командной кнопки, когда я нажимаю кнопку, форма не отправляется и действие не вызывается на стороне сервера.

Та же настройка работает нормально, если я не использую widgetVar и держу кнопку включенной по умолчанию.Он отправляет функцию, вызывает действия и отображает результат.

К вашему сведению, я использую ajax call.

<p:commandButton id="btnSearch" value="Search" disabled="true"
    widgetVar="searchButton"
    ajax="true"
    action="#{someBean.someFunction(someBean.firstName, someBean.lastName)}">
    <p:ajax
        execute="firstName lastName"
        render="tabViewId:resultsDataTableId"
        onsuccess="showSearchResults()"/>
</p:commandButton>

Javascript -

function onSomeEvent(){
    PF('searchButton').enable();
}

Пожалуйста, советуйте.

1 Ответ

0 голосов
/ 21 февраля 2019

Если вы отлаживаете вкладку сети в браузере, есть вероятность, что вы увидите сетевой трафик, когда кнопка включена, как это (с другой стороны, вы могли бы этого не делать, но вы должны были это проверить).Таким образом, это означает, что отправка на сервер действительно происходит, она просто не обрабатывается.Почему это так?

Это разработано и является функцией, встроенной в JSF для предотвращения подделки на стороне клиента форм / данных / ... Потребуются другие современные (читай раскрученные) клиентские JavaScript-фреймворкидополнительная защита OWASP для достижения того же уровня безопасности, что и у JSF.Поэтому, если вы хотите включить кнопку со стороны клиента, вы должны выполнить ajax-вызов, чтобы обновить состояние кнопки (и проверить, разрешено ли это делать клиенту).Или вы могли бы включить его по умолчанию и с помощью некоторого JavaScript изначально отключить его.Я бы лично пошел на первое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...