В чем разница между методами put и add в statehelper в JSF 2

В чем разница между:

  • Объект помещен (Сериализуемый ключ, Значение объекта)
  • void add (Сериализуемый ключ, Значение объекта)

методы в StateHelper в JSF?

2 ответа

Решение

Я нашел документацию API не очень полезным сам и исследовал его. Каждый раз, когда вызывается add, он добавляет другое значение в список, который сохраняется под заданным ключом. Если вы позвоните получить по этому ключу, вы получите обратно список. Метод add спасает вас от создания этого списка и отслеживает угловые случаи, напр. создание списка, когда ключ пуст.

Упомянутый вами пут работает аналогично пут-карте. Сохраняет значение под ключ.

Напротив, есть перегруженная позиция с 3 параметрами. Он создает карту под этим ключом и помещает на эту карту другую пару ключ / значение. Опять же, получить ключ дает вам карту.

Вот в основном, как добавить и поставить работу. Есть еще кое-что, чтобы заставить работать частичные состояния. Подводя итог: если вы хотите добавить несколько значений под ключ, вы можете использовать добавить. поставить с 2 параметрами дает вам поведение, похожее на карту. поставить с 3 параметрами позволяет заполнить карту под ключ.

Из документации API Mojarra:

void add (ключ java.io.Serializable, значение java.lang.Object)
Сохраните указанное значение в списке, который является внутренним для StateHelper.

java.lang.Object put (ключ java.io.Serializable, значение java.lang.Object) Возвращает ранее сохраненное значение и сохраняет указанную пару ключ / значение.

Я предполагаю, что MyFaces реализовал это подобным образом.

Другие вопросы по тегам