2013-06-04 116 views
2
<h:form action="" prependId="false"> 
    <h:selectOneRadio value="#{managedBean.color}" id="color"> 
     <f:selectItem itemValue="red" itemLabel="Color1 - Red" /> 
     <f:selectItem itemValue="green" itemLabel="Color1 - Green" /> 
     <f:ajax event="click" render="group1" listener="#{managedBean.renderSubQuestions}"/> 
    </h:selectOneRadio>   
    <h:panelGroup id="group1"> 
     <h:outputLabel value=" Color Description " rendered="#{managedBean.colorRender}"></h:outputLabel>  
     <h:inputText rendered="#{managedBean.colorRender}"></h:inputText>   
     <h:selectOneRadio id="number" value="#{managedBean.integer}" rendered="#{managedBean.colorRender}" > 
      <f:selectItem itemValue="1" itemLabel="Number1 - 1" /> 
      <f:selectItem itemValue="2" itemLabel="Number1 - 2" /> 
      <f:selectItem itemValue="3" itemLabel="Number1 - 3" /> 
      <f:ajax event="click" render="group2 " listener="#{managedBean.renderSubQuestions}"/> 
     </h:selectOneRadio>   
    </h:panelGroup> 
    <h:panelGroup id="group2"> 
     <h:outputLabel value="Number Description " rendered="#{managedBean.integerRender}"></h:outputLabel> 
     <h:inputText rendered="#{managedBean.integerRender}"></h:inputText> 
    </h:panelGroup> 
</h:form> 

在我的场景中,我使用嵌套的JSF AJAX和嵌套的呈现属性。如果我根据选择选择一种颜色,它会使用AJAX渲染一些单选按钮(添加元素)。它工作正常,但带有AJAX行为的其他元素不适合我。如果我删除号码单选按钮中的rendered属性,它工作正常。我不知道我犯了什么错误。在JSF中使用嵌套的呈现属性嵌套ajax

回答

3

这很可能是你的ManagedBean不在ViewScopedSessionScoped。当你回发给bean时,你正在失去rendered状态。我建议改为ViewScoped之一。

没有关系:

  • 您应该删除从h:formaction属性,因为JSF覆盖它。
+0

感谢您的回复。它对我工作正常... –