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;
}