PageReference.setRedirect () не работает - PullRequest
1 голос
/ 24 марта 2012

Привет! Я пытаюсь перенаправить страницу visualforce на страницу google.com. вот мой код VF

<apex:page controller="google_redir">
  <!-- Begin Default Content REMOVE THIS -->
  <h1>Congratulations</h1>
  This is your new Page
  <!-- End Default Content REMOVE THIS -->
  <apex:form >
  <apex:commandButton action="{! hello1}"  value="Save New Account Value"/>
  </apex:form>
</apex:page>

и вот мой код контроллера apex

public class google_redir{


public PageReference hello1(){
PageReference reference=new PageReference('http://www.google.com');
reference.setRedirect(true);

return reference;
}
}

страница, не перенаправленная на google.com, показывает пустую страницу. Пожалуйста, помогите мне исправить ошибку, если я ошибаюсь, почему она не перенаправляет на страницу google.com.

Ответы [ 4 ]

4 голосов
/ 25 октября 2012

У меня была похожая проблема при попытке перейти на стандартную страницу Visualforce. Я взял код прямо из учебников и, как и Ritesh, получил пустую страницу.
Вот ссылка на учебник: http://www.salesforce.com/us/developer/docs/pages/index.htm И код:

public PageReference save() {
        // Add the account to the database.  

        insert account;
        // Send the user to the detail page for the new account. 

        PageReference acctPage = new ApexPages.StandardController(account).view();
        acctPage.setRedirect(true);
        return acctPage;
    }

Я нашел решение, просмотрев результаты в FireBug (Firefox). Проблема была вызвана ошибкой отказа в разрешении. Как только я отключил режим разработки, перенаправление страницы работало нормально.

Надеюсь, этот альтернативный вариант проблемы и ее решение когда-нибудь кому-нибудь помогут.

2 голосов
/ 24 марта 2012

Точный код, который вы разместили, работает на меня.Я был перенаправлен на http://www.google.com после нажатия кнопки Save New Account Value.Я немного изменил ваш код после тестирования, однако для удобства чтения:

Страница

<apex:page controller="google_redir">
    <apex:form >
        <apex:commandButton action="{!hello1}"  value="Save New Account Value"/>
    </apex:form>
</apex:page>

Контроллер

public class google_redir {
    public PageReference hello1() {
        PageReference reference=new PageReference('http://www.google.com');
        reference.setRedirect(true);
        return reference;
    }
}

Может ли это быть проблема с вашим браузером или интернет-соединением?Попробуйте перенаправить на другой URL-адрес, например http://www.salesforce.com, или использовать другой интернет-браузер, просто чтобы посмотреть, работает ли он.

0 голосов
/ 06 июля 2016

Нам нужно использовать следующий синтаксис кода для перехода к внешним URL-адресам. PageReference reference = new PageReference ('External Url');.

Просмотрите пример в ссылке PageReference Пример

0 голосов
/ 01 мая 2014

Похоже, что на этот вопрос уже дан ответ, но я просто хочу добавить, что вам не нужно устанавливать перенаправление на true в этом случае. Это только если вы хотите сохранить состояние просмотра. Если вы выходите из Salesforce, состояние просмотра не поддерживается.

return new PageReference('http://yrt.ca/');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...