Я передаю xhtml в диалог, компоненты которого динамически добавляются с серверной стороны, используя Dynamic example.Динамический рендеринг - не удается найти компонент с clientId
Использование PrimeFaces 5.1, JSF 2.1 Mojarra и 7. Tomcat
Когда я нажимаю кнопки закрытия всплывающего большое количество, чтобы из не удалось найти компонент в настоящее время рассматривается консоль затмение из-за которой близко действие имеет медленный ответ.
попытался изменить prependId к истинной на Myform. Также попытался замена@form от обновление атрибут кнопки закрытия с : myForm. Оба метода не были успешными.
Я хотел был бы знать как предотвратить это неспособный найти компонент быть вызванным.
Невозможно найти компонент с clientId editOwnerForm: tab: j_id16: iq_16_panelGroup2 ', не нужно его удалять.
Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: j_id235', не нужно его удалять. Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: j_id236', no необходимо удалить. Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: j_id237', не нужно его удалять. Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: j_id238', no необходимо удалить. Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: j_id239', не нужно его удалять. Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: j_id240', no необходимо удалить. Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: j_id241', не нужно его удалять. Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: j_id242', no необходимо удалить. Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: j_id243', не нужно его удалять. Невозможно найти компонент с clientId editOwnerForm: tab: j_id16: iq_17_225 ', не нужно его удалять. Невозможно найти компонент с clientId 'editOwnerForm: tab: j_id16: iq_17_panelGroup2', не нужно его удалять.
myForm.xhtml
<h:form prependId="false" id="form">
<p:commandButton id="editOwnerButtonId" oncomplete="PF('editOwnerDlgVar').show();"
actionListener="#{myViewBean.editOwner}"
update=":editOwnerForm" icon="ui-icon-pencil"
iconPos="right">
<f:param name="ownerId"
value="#{myViewBean.id}" />
</p:commandButton>
</h:form>
<p:dialog id="editOwnerDlgId" widgetVar="editOwnerDlgVar"
modal="true" closable="true" width="1200px" height="600" >
<ui:include src="ownerEdit.xhtml" />
</p:dialog>
ownerEdit.xhtml
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
lang="en" xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:c="http://java.sun.com/jsp/jstl/core"
xmlns:shiro="http://shiro.apache.org/tags">
<h:form prependId="true" id="editOwnerForm">
<p:tabView id="tab" style="border-width:0px;"
activeIndex="#{myViewBean.tanIndex}">
<p:tab >
</p:tab >
<p:tab id="dynamicResponse" title="Dynamic Response">
<h:panelGroup id="sections"
binding="#{myViewBean.panelGroup}">
</h:panelGroup>
</p:tab>
</p:tabView>
<p:commandButton value="Close" update=":form" id="cancelButton"
immediate="true"
actionListener="#{myViewBean.cancelOwner}"
icon="ui-icon ui-icon-arrowreturn-1-w" iconPos="right">
<p:ajax listener="#{myViewBean.setTabIndex}" />
</p:commandButton>
</h:form>
</ui:composition>
MyViewBean Dynamic Rendering код - сработал на кнопку нажмите редактировать
HtmlPanelGroup panelGroup = new HtmlPanelGroup();
panelGroup.getChildren().clear();
TabView tabView = new TabView();
Tab sectionTab = (Tab) tabView.findComponent("sec_" + question.getSectionId());
sectionTab.setId("sec_" + question.getSectionId());
sectionTab.setTitle(question.getSectionName());
HtmlPanelGrid pg = new HtmlPanelGrid();
pg.setColumns(3);
OutputLabel questionText = new OutputLabel();
questionText.setValue(question.getTitle());
pg.getChildren().add(questionText);
OutputLabel coln1 = new OutputLabel();
coln1.setValue(":");
pg.getChildren().add(coln1);
final String respBind = "#{myViewBean.questionResponse[\""+ question.getId()+ "_"+ pet.getId()+ "_"+ question.getMultiPet() + "\"]}";
final ValueExpression resp = FacesContext.getCurrentInstance().getApplication()
.getExpressionFactory().createValueExpression(FacesContext.getCurrentInstance().getELContext(), respBind, String.class);
InputText value = new InputText();
value.setId("iq_"+ String.valueOf(question.getId()) + "_"+ String.valueOf(pet.getId()));
value.setSize(20);
value.setValueExpression("value", resp);
pg.getChildren().add(value);
sectionTab.getChildren().clear();
sectionTab.getChildren().add(pg);
tabView.getChildren().add(sectionTab);
panelGroup.getChildren().add(tabView);