Jsf 为什么a4j:输出不';重新渲染父面板

Jsf 为什么a4j:输出不';重新渲染父面板,jsf,richfaces,Jsf,Richfaces,我面临以下错误: 我在一个文件中有一个selectOneRadio,它使用a4:support调用服务器端的某些东西。 问题是我需要重新渲染一个选项卡组件,该组件位于一系列包含中最外面的文件中。在这种情况下,重新加载显然不起作用。 代码如下: 我的MBean: public String mudarForcaTrabalho(){ InstrutorBaseVO instrutor = getDados(); setDados(ManterInstrutorHelper.transforma

我面临以下错误: 我在一个文件中有一个selectOneRadio,它使用a4:support调用服务器端的某些东西。 问题是我需要重新渲染一个选项卡组件,该组件位于一系列包含中最外面的文件中。在这种情况下,重新加载显然不起作用。 代码如下: 我的MBean:

public String mudarForcaTrabalho(){
 InstrutorBaseVO instrutor = getDados();
 setDados(ManterInstrutorHelper.transformarInstrutor(instrutor));
 setInterno(!isInterno());
 return null;
}
我最外层的文件:manter.xhtml

<h:panelGroup id="pnMaster">
-<h:outputText id="txForca2" value="#{instrutorMB.dados.forcaDeTrabalho}"  />-
<rich:tabPanel switchType="client" id="painelTabs">
       <rich:tab id="tabBasicas" label="#{msg.INFO_BASICAS}">
  <div style="padding:5px;"><ui:include src="informacoesBase.xhtml"/></div>
       </rich:tab>
       <rich:tab id="tabLocal" label="#{msg.INFO_LOCALIZACAO}" rendered="#{instrutorMB.dados.forcaDeTrabalho == 'N'}">
        <div style="padding:5px;"><ui:include src="informacoesLocalizacao.xhtml"/></div>
    </rich:tab>
       <rich:tab id="tabDetalhe" label="#{msg.INFO_DETALHADAS}">
           <div style="padding:5px;"><ui:include src="informacoesDetalhadas.xhtml"/></div>
       </rich:tab>
</rich:tabPanel>
</h:panelGroup>

--
我的内部文件:informacoesBase.xhtml

 <h:panelGroup id="painelPai">
 <fieldset>

  <h:panelGroup id="pnTeste">
  -<h:outputText id="txForca" value="#{instrutorMB.dados.forcaDeTrabalho}"  />-
  </h:panelGroup> 
  <legend>#{msg.MSG_PERTENCE_FORCA}*</legend>

   <h:selectOneRadio id="rdForcaTrabalho" value="#{instrutorMB.dados.forcaDeTrabalho}" disabled="#{instrutorMB.visualizar}">
   <f:selectItem itemValue="S" itemLabel="#{msg.SIM}"/>
   <f:selectItem itemValue="N" itemLabel="#{msg.NAO}"/>
   <a4j:support ajaxSingle="true" event="onchange" immediate="true" reRender="pnMaster" action="#{instrutorMB.mudarForcaTrabalho}"/>
   </h:selectOneRadio>

 </fieldset>

 </h:panelGroup>

--
#{msg.msg\u PERTENCE\u FORCA}*

感谢您的帮助。谢谢。

我想您的文件不在相同的
h:form
aj4:form


ReRender适用于相同表单下的组件。

我猜您的文件不在相同的
h:form
aj4:form

ReRender适用于相同形式的组件

ReRender适用于相同形式的组件

使用reRender时,组件不需要采用相同的形式。他们可以在任何地方。尝试通过添加formId来指向重新渲染器:

reRender=":formId:componentId"
ReRender适用于相同形式的组件

使用reRender时,组件不需要采用相同的形式。他们可以在任何地方。尝试通过添加formId来指向重新渲染器:

reRender=":formId:componentId"

onchange事件仅适用于以下控件: 文件上传、选择、文本、文本区域。因此,它与单选按钮不匹配,您必须使用“onselect”,如下所示:

<a4j:support ajaxSingle="true" event="onselect" immediate="true" reRender="pnMaster" action="#{instrutorMB.mudarForcaTrabalho}"/>

onchange事件仅适用于以下控件: 文件上传、选择、文本、文本区域。因此,它与单选按钮不匹配,您必须使用“onselect”,如下所示:

<a4j:support ajaxSingle="true" event="onselect" immediate="true" reRender="pnMaster" action="#{instrutorMB.mudarForcaTrabalho}"/>