【问题标题】:JSF navigation: from-action with argsJSF 导航:带 args 的 from-action
【发布时间】:2015-04-18 10:38:14
【问题描述】:

对不起我的英语。我有一个navigation-rule

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

TestMB:

public String delete(Test test){
    return SUCCESS;
}

还有test.xhtml

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

我点击del,但规则不起作用。如果我使用不带参数的删除方法Test test:

public String delete(){
    return SUCCESS;
}

它正在工作。 arg 怎么用?

【问题讨论】:

  • delete() 方法本身是否在参数化时被调用?由于您标记了 [jsf-2.2],我不怀疑您是否使用 EL 2.2 或更高版本运行? (它是一个单独的实体,与 JSF 没有紧密耦合)。
  • 方法delete(Test test) 正在工作。但是navigation-rule 不起作用。它以return null; 工作。我使用来自 org.glassfish 的 jsf 2.2.1。
  • 我没有尝试使用参数化操作方法进行显式导航,但可能不允许以这种方式使用参数化操作方法 - &lt;from-action&gt;#{testMB.delete}&lt;/from-action&gt;

标签: jsf jsf-2.2


【解决方案1】:

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

请参阅h:commandLink 的 VDL 文档。在那里你会看到对 action 属性类型的要求。

javax.el.MethodExpression(签名必须匹配java.lang.Object action()) 您正在尝试传递不支持的方法参数。

【讨论】:

    猜你喜欢
    • 2014-12-12
    • 1970-01-01
    • 2013-05-06
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 2013-09-10
    • 2013-01-22
    • 2011-11-03
    相关资源
    最近更新 更多