Salesforce - 将字符串从一个类传递到另一个类! - 顶尖

时间:2012-08-13 20:59:28

标签: salesforce parameter-passing apex-code

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

问题:目前我有2个班级,例如A类和B类。在A类中,我有一个在帐户上运行的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()方法。

我也尝试将其保存在自定义设置中,但由于长度太长,所以不可能!

请帮忙。任何种类的帮助将不胜感激!

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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

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

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

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

答案 2 :(得分:0)

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

感谢帮助人员!