JSF导航:从带有args的操作

JSF导航:从带有args的操作,jsf,jsf-2.2,Jsf,Jsf 2.2,对不起我的英语。我有一个导航规则: <navigation-rule> <from-view-id>/pages/test/*</from-view-id> <navigation-case> <from-action>#{testMB.delete}</from-action> <from-outcome>success</from-outcome>

对不起我的英语。我有一个
导航规则

<navigation-rule>
    <from-view-id>/pages/test/*</from-view-id>
    <navigation-case>
        <from-action>#{testMB.delete}</from-action>
        <from-outcome>success</from-outcome>
        <to-view-id>/pages/test/index.xhtml</to-view-id>
    </navigation-case>
</navigation-rule>
test.xhtml

<h:commandLink action="#{testMB.delete(testMB.instance)}">del</h:commandLink>

它正在工作。如何使用arg?

我在javaserverfaces的jira中添加了这个问题。我有答案:

请参阅
h:commandLink
的VDL文档。在这里,您将看到对action属性类型的要求

javax.el.MethodExpression
(签名必须匹配
java.lang.Object action()

您试图传递一个不受支持的方法参数。

参数化时是否调用了
delete()
方法本身?既然您标记了[jsf-2.2],我毫不怀疑,但您是否使用EL2.2或更高版本?(它是一个独立的实体,没有与JSF紧密耦合)。方法
delete(Test-Test)
正在工作。但是
导航规则
不起作用。它的工作方式是
返回null。我在
org.glassfish
中使用了jsf 2.2.1。我没有尝试使用参数化的操作方法进行这种显式导航,但可能不允许这样使用参数化的操作方法-
{testMB.delete}
<h:commandLink action="#{testMB.delete(testMB.instance)}">del</h:commandLink>
public String delete(){
    return SUCCESS;
}