JSF 2.0: Почему f: ajax отправляет все поля формы, а не только те, которые отмечены атрибутом execute? - PullRequest
8 голосов
/ 08 октября 2010

Похоже, что у меня сейчас куча вопросов, связанных с JSF ... здесь снова и снова: почему вызов AJAX, объявленный с f:ajax, публикует все поля формы, а не только те, которые объявлены с execute?Этот вопрос уже задавался на форумах Sun, но поскольку они сейчас закрыты, я не могу ответить там.В теме есть заглушка, на которую нет реального ответа.

Какой смысл отправлять все поля формы, если мне нужно использовать только некоторые из них?

Ответы [ 3 ]

5 голосов
/ 22 апреля 2013

Я только что проверил билет JSF, который Tuuka опубликовал еще в январе 2011 года. Он сказал, что это поведение (отправка всех полей формы) соответствует спецификации JSF, и проблема была закрыта.

Разработчики JSF опубликовали уведомление об изменении спецификации, которое должно быть изменено в следующей спецификации.Дата была 31 января 2013 года. https://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-1098

"f: ajax не подчиняется атрибуту execute, но всегда отправляет все поля в форме. Mojarra делаетТем не менее, обрабатывать только перечисленные поля следует только так, как предполагается. Однако не следует отправлять лишние поля, поскольку это увеличивает размер запроса. "

" Статус: открыт Приоритет: крупный "

2 голосов
/ 29 ноября 2010

Кажется, это ошибка в jsf.js. Функция getViewState возвращает все параметры (вместо фильтрации), которые затем отправляются на сервер в строке запроса.

пример: j_idt15 =j_idt15 & j_idt15% 3Avalue1 = 4444 & j_idt15% 3Avalue2 = 555 & j_idt15% 3Avalue3 = 6664 & javax.faces.ViewState = -6275268178907195611% 3A5276476001199934151 & javax.faces.source = j_idt15% 3Avalue1 & javax.faces.partial.event = нерезкости & javax.faces.partial.execute = j_idt15% 3Avalue1% 20j_idt15% 3Avalue1 & javax.faces.partial.render = value1out & javax.faces.partial.ajax = true

Здесь вы можете видеть, что хотя javax.faces.partial.execute правильно указано как: j_idt15: value1, запроспо-прежнему содержит все значения

1 голос
/ 11 октября 2010

Я не уверен на 100%, но это может быть ошибкой в ​​Мохарре.См. аналогичный вопрос о специальном ключевом слове @all .

Вкратце: Мохарра не подчиняется списку форм, введенных для атрибута execute f:ajax, но всегда передает толькоограждающая форма.То же самое, вероятно, относится и к более подробному уровню поля - Мохарра не подчиняется атрибуту execute при выборе полей для отправки, а просто отправляет их все.Однако при обработке данных на стороне сервера он подчиняется атрибуту execute.

Может ли кто-нибудь проверить, отличается ли поведение от Apache Myfaces?

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