Mindmap primefaces 3.5中的onNodeSelect不会被调用

时间:2013-09-18 19:13:35

标签: ajax jsf primefaces mindmap

关于思维导图和素数表中的选择事件的一个小问题。

这是我的组件

        <h:form>
            <prime:mindmap value="#{artifactSelectionBackingBean.root}"
                style="width:100%;height:600px;border:1px solid black;"
                rendered="#{artifactSelectionBackingBean.visibleMindmap}">
                <prime:ajax event="select"
                    listener="#{artifactSelectionBackingBean.onNodeSelect}" />
                <prime:ajax event="dblselect"
                    listener="#{artifactSelectionBackingBean.onNodeDblselect}"
                    update="output" oncomplete="details.show()" />
            </prime:mindmap>

            <prime:dialog widgetVar="details" header="Node Details"
                resizable="true" modal="true" showEffect="fade" hideEffect="fade">
                <h:outputText id="output"
                    value="#{artifactSelectionBackingBean.selectedNode.data}" />
            </prime:dialog>
        </h:form>

现在,其他方法完全从展示案例(http://www.primefaces.org/showcase/ui/mindmap.jsf)中复制/粘贴。行为是思维导图呈现(具有正确的根和启动配置),但是,“select”事件不执行任何操作,“double select”返回空框。我究竟做错了什么?这毕竟是直接从展示案例中复制的......

另外,我使用的是primefaces 3.5。任何帮助表示赞赏!!!

P.S。我知道我添加了一个渲染属性,但它是“真实的”,因为我正确设置它并且思维导图在开始时正确渲染。

1 个答案:

答案 0 :(得分:0)

OK!我终于找到了答案,因为我正在通过各种思维导图/主要表面相关问题浏览stackoverflow,并拼命尝试应用任何解决方案。

显然,ManagedBean / Named bean(如果使用CDI)必须是@SessionScoped而不是@RequestScoped(默认情况下)。如果它是@RequestScoped你会得到特殊的行为,并且某些事件(在我的情况下是“select”事件)不会触发。

我不知道这是一个错误还是在文档中被小心省略。但是,有人应该明确记录它!