我为多个视图使用通用的JSF模板。它包含用于输入数据范围的数据选择器控件和用于刷新当前视图的按钮。
我正在使用发布/重定向/获取模式,因此我将?faces-redirect=true
属性附加到导航中。
在JSF 2.1(Mojarra)中,使用刷新页面就足够了
<h:commandButton action="?faces-redirect=true" value="submit"/>
在JSF 2.2(Mojarra 2.2.12)中,这似乎不再有效(我得到类似这样的strange "String index out of range: 0" error),并且还必须指定当前视图:
<h:commandButton action="index?faces-redirect=true" value="submit"/>
为了使此链接动态,我尝试使用view.viewId
变量:
<h:commandButton action="#{view.viewId}?faces-redirect=true" value="submit"/>
但是,此构造返回Not a Valid Method Expression
错误。顺便说一下,view.viewId
返回/index.xhtml
,这在硬编码而不是该变量时工作正常。
令人惊讶的是,如果在没有'后缀'部分的情况下使用view.viewId
,则可以:
<h:commandButton action="#{view.viewId}" value="submit"/>
知道如何为JSF 2.2修复此问题吗?