Как / как лучше всего передать список строк из jsf в бэк-бин - PullRequest
1 голос
/ 22 декабря 2011

Вот как я это делаю.Должен быть лучший способ ... Надеюсь.

Я использую данные JSF для отображения моих данных.Первый столбец в каждой строке является флажком.

Можно установить несколько флажков.Когда нажата кнопка «Отправить», я использую javascript / jquery, чтобы получить все отмеченные поля и получить идентификатор строки, который является строкой.

В моем js я объединяю все идентификаторы в одну строку, разделяя их запятой.Затем я устанавливаю значение скрытого ввода на моей странице jsf / jsp в объединенную строку.В бэк-бине я извлекаю все эти идентификаторы из строк и создаю список строк.

Я хотел бы иметь возможность создать список в своем javascript, передать этот список строк в бэк-компоненткаким-то образом, может быть, скрытый ввод по-прежнему, и избегайте строки concat.

Я использую jsf1.2, если это имеет значение.

Спасибо за ваши предложения.Примеры кода приветствуются, но не обязательны.

1 Ответ

1 голос
/ 22 декабря 2011

Вы можете позволить JS заполнить <h:inputHidden>.

<h:form id="form">
    <h:inputHidden id="ids" value="#{bean.ids}" />
    // ...

с

document.getElementById("form:ids").value = yourCommaSeparatedString;

Вы можете создать Converter, который преобразует запятую String в String[] и наоборот, чтобы вы могли создать ids String[] свойство.Вы можете найти базовый пример здесь: получение нескольких значений из поля inputText, разделенных запятыми в JSF .


Не связанных с конкретным вопросом, это немногоHacky.Просто используйте <h:selectBooleanCheckbox> с Map<Long, Boolean> или чем-то еще.Таким образом, вам не нужно добавлять JS-код.Смотрите также Как выбрать несколько строкс.

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