0

私は速度で動作しているJavaアプリケーションを持っています。ureq.getParameter()メソッドを使用して抽出したURLを介して、最初のページで2つの変数を取得します。速度コンテナを持つ他のクラスの1つであり、URLからこの速度コンテナに変数の1つを送信する必要があります。2番目のクラスに最初のクラスのインスタンスを作成し、getVariable nameメソッドを使用してそれを実行しようとしましたが、機能しませんでした。誰かが私にこれを行う方法を教えてもらえますか?

クラス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;
    }

}

クラス2:

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());      

}
4

1 に答える 1

1

別のクラスのインスタンスを作成するには、「public CLASSNAME」メソッドを作成し、内部で「this」modfierを使用してすべてのクラス変数を定義します。次に、そのメソッドから使​​用したい関数を呼び出し、クラスを使用したい場合は、「new CLASSNAME(args);」を実行します。

しかし、私はあなたの質問を理解しているとは本当に確信していません。

多分これはあなたの答えです。変数を静的にしてから「CLASSNAME.VARIABLENAME=WHATEVER」を実行すると、あるクラスから別のクラスへの変数を使用できます。


編集:

さて、私が知る限り、クラスから静的な値を返すメソッドを使用しています。これは、単に「newURL」、RemoteLoginformDispatcher.newURL)を実行するよりもはるかに低速です。おそらくより高速であり、newURLが定義されている場合は常に機能するはずなので、これを試してみませんか。そうしないと、別の問題が発生し、newURLが定義されません。この場合は、キャッチされた例外を出力してみてください。

于 2012-09-03T02:36:59.500 に答える