Должен ли я ожидать, что результаты UIComponent#getClientId()
могут измениться в пользовательской сессии? Я хотел бы сохранить полную ссылку clientId на UIComponent
и использовать ее позже.Может ли UIComponent clientIds меняться по запросам?
Когда пользователь добавляет динамический компонент:
myBean.setClientId(composite.getClientId());
Намного позже в сессии, когда пользователь "Сэйв":
String clientId = myBean.getClientId();
UIComponent composite = view.findComponent(clientId);
- Может быть различные реализации JSF не гарантируют тот же ClientId через сеанс?
- Возможно динамическое добавление и удаление
UIComponents
(или прихоть) приведет к тому, что один из контейнеров на пути изменит индекс по запросам?
Я видел этот большой Q & A, и я не уверен, если он полностью отвечает на вопрос о сохранении ClientId и использовать его несколько запросов в конце сеанса или в динамической форме: when-and-how-is-clientid-generated-in-jsf
Спасибо
В настоящее время я использую clientId-путь, у которого нет идентификаторов 'j_idt #', но теперь я думаю, что я избегу проблемы, сделав мои основные компоненты уникальными и найду их с помощью 'root.visitTree()' (ex : ''). –
AAron
Благодарим вас за советы и советы по дереву компонентов Java. Всегда ищу альтернативные подходы, но в настоящее время я получил чистый/солидный подход, который удовлетворяет моим требованиям.Посмотрите на JSTL, чтобы попытаться понять дизайн, который вы предлагаете. – AAron