Предположим, что это следующая ситуация: создание представления, в котором элементы управления формы отображаются с помощью DHTML (то есть каждый раз, когда пользователь нажимает кнопку, создается новая строка с полями, а идентификаторы полей генерируются и присваиваются полям с тот же DHTML, что и «form1control1» и т. д.), но где эти элементы управления еще не связаны ни с одним UIComponent в ViewRoot (так как они создаются клиентом динамически, и поэтому сервер не знает, что они находятся в форме) Как я могу иметь дело с а) обнаружением этих элементов управления и б) использованием этих имен для проверки и обработки в JSF?
При использовании подхода JSP, который управляет именами и значениями, поставляется с HttpRequest и легко обрабатывать эти элементы, вызывая объект запроса и используя алгоритм, который ищет все объекты с шаблоном, поэтому, где объект с именем ' form1control1 'есть, я найду его с помощью т.е. request.getParameterNames () и request.getParameter ("form" + N + "control" + M), чтобы позже иметь дело с проверкой и преобразованием с использованием кода для всех названных параметров .
Как я понимаю, с JSF мне нужно связать один элемент управления с одним UIComponent, объявив элемент управления в JSP с одним тегом и, следовательно, присоединить любой или оба валидатора или преобразователя к этому элементу управления, чтобы RootView знал элемент управления есть и имеет ассоциированное имя, и он будет ожидать управления этим элементом управления, но мне нужен не элемент управления, объявленный JSP, а элемент, созданный клиентом динамически с помощью JavaScript, позднее отправленный на сервер и обработанный как любой другой элемент, объявленный JSP UIComponent, поэтому я могу перезапустить мой вопрос как: Как мне работать с элементами управления, не объявленными в какой-либо JSP и созданными динамически клиентом с DHTML, для проверки, преобразования и обработки?
Полагаю, я могу сделать это с AJAX, вызывая ViewRoot каждый раз, когда я создаю новую строку с новыми элементами управления, и обновляю ее, добавляя любой элемент управления программно в дерево, но я думаю, что этот подход очень дорогой, так как мне нужен ) сгенерировать запрос AJAX, б) дать работу серверу в любое время, когда я выполняю действие в форме, которая подразумевает использование времени обработки и выделение ресурсов памяти; поэтому, желательно, я бы хотел избежать использования AJAX для обновления ViewRoot с помощью любого нового созданного / удаленного элемента управления. Очевидно, я не закрыт, если обязательно использовать AJAX для обновления ViewRoot для достижения такого поведения. Если я смогу избежать этого последнего подхода, это тоже приветствуется.
Большое спасибо за ваши отзывы заранее.