Ответ 1
Атрибут rendered
- серверный, а атрибут visible
- клиентский. Атрибут rendered
указывает, должен ли JSF генерировать диалоговое представление HTML или нет. Атрибут visible
указывает, должен ли HTML/CSS/JS сразу отображать диалоговое окно на загрузке страницы браузера или нет.
Если диалоговое окно не отображается, вы не сможете его отобразить, например, JavaScript dialogWidgetVar.show()
, не перезагружая страницу или ajax - обновляя один из родительских компонентов диалогового окна таким образом, чтобы диалог rendered
оценивается как true
. Кроме того, атрибут visible
не будет иметь никакого эффекта, если диалог не будет отображаться просто потому, что ничего не отображается в результате вывода HTML, который может быть показан/скрыт JavaScript.
Если диалог отображается, он по умолчанию скрыт. Вы можете установить visible
на true
, чтобы заставить его отображать диалоговое окно сразу при открытии страницы. Или вы можете вызвать JavaScript dialogWidgetVar.show()
в атрибуте onclick
или oncomplete
, чтобы показать его.
Используйте атрибут rendered
, если вы вообще не хотите визуализировать диалог, например, потому что он никогда не будет использоваться в текущей композиции страницы.