2015-04-18 48 views
0

對不起,我的英語。我有一個navigation-ruleJSF導航:從動作與參數

<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但規則不能正常工作。如果我使用無arg的刪除方法Test test

public String delete(){ 
    return SUCCESS; 
} 

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

+0

當它被參數化時,是否調用'delete()'方法?既然你標記了[jsf-2.2],我不懷疑你是否在使用EL 2.2或更高版本? (它是一個獨立的實體,與JSF不緊密結合)。 – Tiny

+0

方法'刪除(測試測試)'正在工作。但'導航規則'不起作用。它的工作方式是'return null;'。我使用'org.glassfish'中的jsf 2.2.1。 – zerg

+0

我沒有嘗試使用參數化操作方法進行這種顯式導航,但可能不允許使用參數化操作方法 - 「#{testMB.delete}'。 – Tiny

回答

0

我在jara中添加了javaserverfaces的問題。我有答案:

請參考VDL文檔h:commandLink。在那裏你會看到action屬性類型的需求。

javax.el.MethodExpression(簽名必須匹配java.lang.Object action()) 您試圖在不支持的地方傳遞方法參數。