jsf - JSF 中具有嵌套渲染属性的嵌套 ajax

标签 jsf jsf-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 属性,它就可以正常工作。我不知道我哪里做错了。

最佳答案

这很可能是您的 ManagedBean 不在 ViewScopedSessionScoped 中。当您回发到 bean 时,您将丢失rendered 状态。我建议更改为 ViewScoped 之一。

不相关:

  • 您应该从 h:form 中删除 action 属性,因为 JSF 会覆盖它。

关于jsf - JSF 中具有嵌套渲染属性的嵌套 ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16911137/

相关文章:

jsf - 在转换器中注入(inject) managedBean

java - JSF 2 复合组件不使用 f :ajax 更新值

javascript - 单击 JSF 表时打开一个新页面

java - jsf 有 onrerender 事件吗?

java - 以编程方式为登录 JSF 网站的用户分配安全角色

jsf - 在JSF应用程序中从URL删除/faces/

java - ViewScope 构造函数调用了两次,不知道为什么

jsf - 是否可以拦截来自@ManagedBean 的方法?如果没有,有替代方案吗?

jsf - <content :link> is showing error text if there is no URL

java - JSF 2.0 - 即使第一个 validator 失败也会调用第二个 validator