2012-09-03 53 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

相关问题