在action属性中组合view.viewId时,不是有效的方法表达式

时间:2016-06-20 09:36:53

标签: jsf jsf-2 el mojarra

我为多个视图使用通用的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修复此问题吗?

0 个答案:

没有答案