缝2.3,JSF 2.0 - 用于传播对话(Seam 2.3, JSF 2.0 - Convers

2019-09-16 23:20发布

我在我们的迁移从煤层2.2主要应用到Seam 2.3beta1,为了得到一些JSF 2.0和JPA 2.0的好处的过程。 在大多数情况下,它的顺利进行。 然而,其中一些在JSF 2.0和RichFaces的4.x的Ajax的变化被证明是在移植代码有问题的。

我有一个系列是基于其他的内容填充组件。 例如,第一菜单中选择项目类别。 当选择了一个值,该类别的子类别从数据库,并作为用于第二菜单的选择项目检索。 这整个过程是对话范围。 目前,代码如下:

<h:selectOneMenu value="#{newObjAction.category}"
            required="true"
            requiredMessage="You must select a category"
            style="width:300px;">
        <s:selectItems var="cat"
            value="#{newDesignAction.designCategories}" label="#{cat.name}"
            noSelectionLabel="Select a category..."
            hideNoSelectionLabel="true" />
        <s:convertEntity />

        <a:support event="onchange" reRender="subCategoryPanel"
            limitToList="true" ajaxSingle="true" status="subCategoryStatus" />
</h:selectOneMenu>

这工作没有问题的Seam 2.2 JSF 1.2。 然而,已经从JSF 2.0中删除。 我已经试过这样的事情在它的位置:

<f:ajax listener="#{newObjAction.handleCategoryChange}">

它触发如预期的事件,但是有一个很大的问题:它没有传播的谈话。 其结果,当收听对象将要被调用它被截取,并且用户被重定向到所定义的no-conversation-view-idpages.xml 。 使用时,有什么办法可以传播对话<f:ajax /> 有没有更好的方式来做到这一点? 在这一点上,整个迁移在静止不动,因为这是在应用程序中的重要组成部分。

我真的很感激任何帮助或建议。

文章来源: Seam 2.3, JSF 2.0 - Conversation propagation for