обновление & lt; ui включает & gt; в моем шаблоне.xhtml [duplicate]

В приведенных выше ответах не обсуждается назначение среза:

>>> r=[1,2,3,4]
>>> r[1:1]
[]
>>> r[1:1]=[9,8]
>>> r
[1, 9, 8, 2, 3, 4]
>>> r[1:1]=['blah']
>>> r
[1, 'blah', 9, 8, 2, 3, 4]

Это также может прояснить разницу между нарезкой и индексированием.

78
задан BestPractices 6 July 2012 в 16:22
поделиться

3 ответа

Используя стандартный API JSF, добавьте идентификатор клиента в PartialViewContext#getRenderIds() .

FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("foo:bar");

Используя API-интерфейс PrimeFaces, используйте RequestContext#update() .

RequestContext.getCurrentInstance().update("foo:bar");

Если вы используете библиотеку служебных программ JSF OmniFaces , используйте Ajax#update() .

Ajax.update("foo:bar");

Независимо от способа, обратите внимание, что эти идентификаторы клиентов должны представлять собой абсолютные идентификаторы клиентов, которые не с префиксом символа разделителя NamingContainer, как это было бы со стороны просмотра.

141
ответ дан BalusC 23 August 2018 в 17:50
поделиться

Я также попытался обновить компонент из bean bean / class jsf bean / class

. После манипулирования компонентом пользовательского интерфейса вам необходимо выполнить следующее:

FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add(componentToBeRerendered.getClientId())

Важно, чтобы используйте clientId вместо (server-side) componentId !!

6
ответ дан Frithjof Schaefer 23 August 2018 в 17:50
поделиться

Функция RequestContext устарела из прайс-листов 6.2. Из этой версии используйте следующее:

if (componentID != null && PrimeFaces.current().isAjaxRequest()) {
    PrimeFaces.current().ajax().update(componentID);
}

И для выполнения javascript из backbean используйте этот способ:

PrimeFaces.current().executeScript(jsCommand);

Ссылка:

2
ответ дан ℛɑƒæĿ 23 August 2018 в 17:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: