我正在尝试在执行Java方法时对组件进行更新。 我找到了一种方法,但是在这种情况下,我现在需要更新要更新的组件的容器形式的ID。 而且我在调用该方法时也不知道该ID ...
那么,有谁知道不知道容器ID的更新方法吗?还是有一种方法可以在确定组件ID的情况下动态确定容器的ID? 我的代码是:
java方法:
public void show(String id, JPFBBean bbean) {
if (mappaErrori.containsKey(id)) {
ErroreVagMBean err = mappaErrori.get(id);
bbean.setAttribute("erroriVag", err.getIdPannello(), err);
bbean.setAttribute("renderErroriVag", err.getIdPannello(), true);
FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("pageInfoForm:vagErrore_"+err.getIdPannello());
}
}
public void hide(String id, JPFBBean bbean) {
if (mappaErrori.containsKey(id)) {
ErroreVagMBean err = mappaErrori.get(id);
bbean.setAttribute("erroriVag", err.getIdPannello(), null);
bbean.setAttribute("renderErroriVag", err.getIdPannello(), false);
FacesContext.getCurrentInstance().getPartialViewContext().getRenderIds().add("pageInfoForm:vagErrore_"+err.getIdPannello());
}
}
总是将XHTML组件taht插入表单内:
<ui:composition>
<c:set value="#{bbean.erroriVag[id]}" var="err"></c:set>
<p:panel id="vagErrore_#{id}" styleClass="panel-no-space" widgetVar="vagErrore_#{id}">
<p:panel styleClass="noStyle margin-top-20" rendered="#{bbean.renderErroriVag[id]}" >
<div class="ui-messages ui-widget" aria-live="polite">
<div
class="#{err.tipo eq 'warn' ? 'ui-messages-warn ui-corner-all' : ''}">
<span class="#{err.tipo eq 'warn' ? 'ui-messages-warn-icon' : ''}"></span>
<ul>
<li role="alert" aria-atomic="true">
<span
class="#{err.tipo eq 'warn' ? 'ui-messages-warn-summary' : ''}"
style="display:#{empty err.title ? 'none' : 'unset' }">#{err.title}</span>
<span
class="#{err.tipo eq 'warn' ? 'ui-messages-warn-detail' : ''}">#{err.message}</span>
</li>
</ul>
</div>
</div>
</p:panel>
</p:panel>
</ui:composition>