2011-11-02 48 views
0

我正在BlazeDS上運行flex。我的後端在Java中。使用CallResponder時傳遞額外參數以請求的ActionScript

我在動作以下功能:

override public function execute():void 
{ 
     super.execute(); 
     var responder:CallResponder = new CallResponder(); 
     responder.token = service.foo(param); 
     responder.addEventListener(ResultEvent.RESULT, onDataReceive); 
     responder.addEventListener(FaultEvent.FAULT , onDataReceiveError); 
} 

在Java函數foo看起來像這樣:

public void foo (String param) { 
    //some code 
} 

是否有可能以某種方式傳遞請求另一個參數不改變的java函數foo?

我想做foo中像這樣(忽略語法):

public void foo (String param) { 
    Request.getParameter("param2"); 
} 

我希望是十分明顯的。

感謝您的幫助。

+0

我不限於CallResponder。也許有另一個功能,我可以使用CallResponder的功能,但也有這個選項。如果可能的話,我的主要目標不是改變java函數的簽名。 – netta

回答

1

這是不可能的 - 如果你想傳遞更多的參數,你需要改變java方法的簽名。或者,您可以使用通用映射作爲輸入參數,並將所有參數推入其中。

+0

感謝您的回覆。你能想到反正這樣做,這樣的java代碼不需要改變? – netta

+0

Cornel是對的。您應該更改java方法簽名,而不是試圖變得棘手,並偷偷地輸入另一個參數。是否有一個原因,您不能這樣做? – sean

+0

完整轉換所有Java API,並更改所有調用它們的Actionscript方法。所以基本上幾小時的工作時間2 :-)。如果有辦法提供額外的參數,那隻需要幾個小時的工作。請注意,我不想「偷偷摸摸」任何事情。我想知道是否有合法的方式來做到這一點。 – netta