В чем разница между методами 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 реализовал это подобным образом.