#jsf
#jsf
Вопрос:
Например, у меня есть commandButton
, как показано ниже:
<p:commandButton
actionListener="#{logicBean.doSomething}"
update="component1 component2 component3"
/>
Итак, можно ли пропустить повторную генерацию и рендеринг component3
из logicBean.doSomething
метода? Это означает, что в возвращенном ответе нет нового HTML для component3
.
Я уже пробовал FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().remove("component3");
, но это не работает.
Комментарии:
1. Каково фактическое содержимое
FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds()
? Действительно ли он содержал aString
, который точно соответствует"component3"
?2. Привет @BalusC, да, он вернет список, содержащий «component3».
Ответ №1:
Вы можете выполнить обновление из компонента:
public void doSomething() {
/* do the stuff */
if(haveToDo)
PrimeFaces.current().ajax().update( "component3" )
// with older primefaces
// RequestContext.getCurrentInstance().update( "component3" );
}
но вы должны искать полный идентификатор. Это может быть «tab2: myform:component3»
Комментарии:
1. Спасибо за ваш ответ, но, похоже, здесь есть недоразумение. Я хотел бы удалить «component3» с этапа ответа на рендеринг.
2. Да, не записывайте его в html, но добавляйте его из компонента, когда захотите.