从服务器端更新组件

时间:2018-06-20 16:54:04

标签: jsf primefaces updates

我正在尝试在执行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>

0 个答案:

没有答案