我正在尝试MyFaces CODI的出色功能。一个非常有用的东西是类型安全导航。我可以在控制器bean中指定操作方法的结果,如下所示:

public Class<? extends ViewConfig> goBack() {
    return Pages.ListView.class;
}


这真的很酷,因为每个开发IDE都具有过度的重构能力。

但是,当我想使用此功能时,在将viewParameter传递到下一个视图时遇到了问题。我必须使用命令按钮来调用此操作方法,如下所示:

<h:commandButton id="backButton" value="#{msgs.Button_Back}"
action="#{viewBean.goBack()}" />


如果使用此命令按钮,则无法传递参数。使用“常规”按钮或链接即可:

<h:button id="backButton" value="#{msgs.Button_Back}" outcome="siteBefore.xhtml">
   <f:param name="itemId" value="5" />
</h:button>


缺点是“常规”按钮不使用操作方法,因此我无法利用CODI的类型安全导航的优势。

那么有可能将这两个功能结合起来吗? (传递viewparams并使用类型安全的导航)

提前致谢!

最佳答案

他们实现了您要寻找的东西。见https://issues.apache.org/jira/browse/EXTCDI-216

09-25 13:43