Перенаправить на действие в том же контроллере в Play framework

Я использую Play 1.2.5. У меня есть действие «добро пожаловать», в котором есть оператор перенаправления на действие «view1». Перенаправление, кажется, работает (проверил мой журнал), но представление действия «view1» не отображается после перенаправления.

  public static void welcome(){

     redirect("/view1");
  }
  public static void view1(){
   // code goes here....

  }

После перенаправления представление действия view1 не отображается.

Заранее спасибо !!


person dotnetrocks    schedule 11.01.2013    source источник
comment
почему бы вам не запустить его при отладке и не установить точку останова в инструкции рендеринга вашего метода view1?   -  person palako    schedule 12.01.2013


Ответы (3)


Вместо

redirect("/view");

просто позвони

view1();
person Werner Kvalem Vesterås    schedule 11.01.2013
comment
Работает ли ваш метод view1() при прямом доступе к нему? У вас есть метод в вашем файле routes? - person Werner Kvalem Vesterås; 11.01.2013
comment
Да, работает напрямую. Я также проверил файл маршрутов. - person dotnetrocks; 11.01.2013
comment
Что значит не работает. Что произойдет, если вы вызовете view1() из welcome()? - person emt14; 12.01.2013
comment
@emt14 emt14, когда я вызываю view1() из welcome(), он не обновляется и не отображает представление view1 - person dotnetrocks; 14.01.2013

Ваш метод view1 заканчивается render(); ?

Если нет, ваш контроллер ничего не отобразит.

Вам также понадобится правильный файл view1.html того же уровня, что и ваш файл welcome.html.

person WiseTechi    schedule 14.01.2013
comment
Привет, спасибо за ваш ответ !! не могли бы вы сказать мне, что вы подразумеваете под правильным файлом view1.html? Спасибо. - person dotnetrocks; 14.01.2013
comment
Здравствуйте, по соглашению, если вы вызываете render() из controllers.MyController.myMethod, будет использоваться шаблон представления views.MyController.myMethod.html. В вашем примере вызов метода view1 формы render() будет использовать view1.html. - person WiseTechi; 16.01.2013

Возможно, вам потребуется проверить файл conf/routes, чтобы убедиться, что view1 отображается в допустимом сопоставителе маршрутов. Например:

* /view1         WhatEverYourControllerClassIsCalled.view1

Или через какой-нибудь универсальный сопоставитель

* /{action}      WhatEverYourControllerClassIsCalled.{action}
person Tom Carchrae    schedule 27.01.2013