0

こんにちは
現在問題があり、解決できません。

問題:現在、クラスAとクラスBの2つのクラスがあります。クラスAI内では、アカウントでforループが実行されています。

Class A{
    for(Account t: listAccounts){
         String abc = t.Name;
         String URL = 'http://testURL.com/test?q1='+t.id+'&q2='+t.Name.......till q50';
    }
}

したがって、このforループがアカウントで実行されるたびに、新しいURLが生成されます。このURLをforループからVFページに表示する別のクラスに渡す方法が必要です。したがって、クラスBはVFページのコントローラーです。

URLは500文字を超える長さになるため、カスタム設定として渡して他のコントローラーで取得することはできません。

Class B{
       public String getURL(){
         //Somehow fetch that URL everytime the loop runs 
         return URL;
       }
}

これで、VFページはこのコントローラークラスBを呼び出して、URLを取得し、出力リンクとして表示します。

試したこと:ゲッターとセッターを使用しようとしましたが、機能しませんでした。なんで?VFページは、パラメーターなしでgetURL()メソッドを厳密に呼び出すためです。

カスタム設定で保存してみましたが、長さが長すぎて出来ません!

助けてください。どんな種類の助けも大歓迎です!

4

3 に答える 3

0

グローバル静的変数を試しましたか?

于 2012-08-13T23:46:56.960 に答える
0

AccountクラスAに静的メソッドを作成して、特定のオブジェクトのURLを返すことができます。

次に、クラスBはVisualforceページで現在のアカウントのIDを検索できます。

Id id = ApexPages.currentPage().getParameters().get('id');

そして、そのIDをクラスAの静的メソッドに渡して、そのアカウントのURLを取得します。

これは、アカウントの詳細を表示するVisualforceページでは機能しますが、アカウントのリストでは機能しません。

于 2012-08-14T22:00:15.373 に答える
0

助けてくれてありがとう。でも私が見つけた唯一の方法は、アカウントを検索するカスタムオブジェクトに保存し、SOQLを実行してクラスBに入れることです。

助けてくれてありがとう!

于 2012-08-15T14:05:30.103 に答える