0

您好
我现在有一个问题,我无法解决。

问题:我目前有 2 个类,例如 A 类和 B 类。AI 类内部有一个在 Accounts 上运行的 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 并将其显示为输出链接。

我尝试过的:我尝试过使用 getter 和 setter,但它没有用。为什么?因为 VF 页面严格调用没有参数的 getURL() 方法。

我也尝试将它保存在自定义设置中,但由于长度太长,这是不可能的!

请帮忙。任何形式的帮助将不胜感激!

4

3 回答 3

0

您是否尝试过全局静态变量?

于 2012-08-13T23:46:56.960 回答
0

谢谢大家的帮助,但我能找到的唯一出路是将它保存在一个自定义对象上,该对象可以在 Account 上查找,然后执行 SOQL 以将其放入 B 类。

谢谢你们的帮助!

于 2012-08-15T14:05:30.103 回答
0

您可以在 A 类上创建一个静态方法来返回给定Account对象的 URL。

然后 B 类可以在 Visualforce 页面上查找当前帐户的 Id:

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

并将该 ID 传递给 A 类的静态方法以获取该帐户的 URL。

这适用于显示帐户详细信息的 Visualforce 页面,但不适用于帐户列表。

于 2012-08-14T22:00:15.373 回答