2012-09-03 92 views
0

我有一個java我們的應用程序正在與速度。我通過使用ureq.getParameter()方法提取的url在第一頁中獲得兩個變量。其中有一個速度容器的其他類,我需要發送一個變量從url到這個速度容器。我嘗試在第二個類中創建第一個類的實例,並使用getVariable名稱方法來實現,但它不起作用。有人能告訴我如何做到這一點?使用變量從一個類到另一個java

第1類:

package org.olat.dispatcher; 

import java.io.UnsupportedEncodingException; 
import java.net.URLDecoder; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import org.olat.core.gui.UserRequest; 

public class RemoteLoginformDispatcher implements Dispatcher { 

    private static final String PARAM_newUrl = "ret"; 
    private static String newURL; 

    @Override 
    public void execute(
      final HttpServletRequest request, 
      final HttpServletResponse response, 
      final String uriPrefix) { 

     UserRequest ureq = null; 

     try { 
      ureq = new UserRequest(uriPrefix, request, response); 
      newURL = ureq.getParameter(PARAM_newUrl); 
     } catch() { 
     } 

    } 

    public String getURL(){ 
     return newURL; 
    } 

} 

二級:

public class BaseChiefController extends DefaultChiefController implements ContentableChiefController { 
    //Velocity container mainvc created here. It interacts with a html file. Removed the code that would not really matter 

    //mainvc.contextPut("newURL", "something"); 
    //The below statement works. When I try with something, the something appears in the html file. 
    mainvc.contextPut("newURL", myLogin.getURL());  

} 
+0

在* general *中,我們創建一個類的對象,並通過方法參數將其引用傳遞給另一個類。 – adatapost

+0

'velocityContainer.setVariable(theVariable)',其中'setVariable()'是您正在處理的變量的適當設置器。 – moonwave99

回答

1

要創建另一個類的實例,簡單地創建一個 「公共CLASSNAME」 法,和內定義與所有類變量的「這「更加改進。然後,從該方法中調用你希望使用的函數,並且當你想使用這個類時,只需執行「new CLASSNAME(args);」

雖然,我不太清楚我是否理解你的問題。

也許這是你的答案。通過將變量設置爲靜態,然後執行「CLASSNAME.VARIABLENAME = WHATEVER」,可以將變量從一個類用於另一個類。


編輯:

好了,據我所知,您使用的方法返回從類,這比只是在做「的newURL」,RemoteLoginformDispatcher慢得多的靜態值。的newURL);. 爲什麼不嘗試這個,因爲它可能更快,並且如果定義了newURL,它應該始終工作。否則,你有一個不同的問題,newURL沒有被定義。如果是這種情況,請嘗試打印捕獲到的異常。

+0

我在編輯我的問題以包含代碼以使其更易於理解。對不起,如果它不是很清楚。 – user1439090

+0

我編輯了問題以包含代碼的相關部分。 – user1439090

+0

好的,謝謝你,我應該在第二個回答你的問題 – JNorr44

相關問題