2010-11-26 4 views
3

Когда я вызываю другое действие в одном действии, он также отображает сам шаблон в Play 1.1 RC и когда я Redirect("...url"), но он не работает, есть ли кто-нибудь, кто может мне помочь?Как перенаправить в Play Framework?

+0

показать код, уточнить свой ответ, очень плохо сформулированный прямо сейчас. – Jakub 2010-11-26 07:32:25

ответ

3

В структуре воспроизведения, когда вы вызываете действие, по умолчанию он отображает шаблон, связанный с этим действием.

Например, регулятор, названный Application

public static void index() 

Окажет

app/views/Application/index.html 

Чтобы сделать это вынести другую точку зрения, то вы можете указать шаблон в качестве первого параметра в методе визуализации.

Так,

renderTemplate("Application/myOtherTemplate.html"); 

Перенаправление должны только действительно быть использованы при перенаправлении на URL вне Вашего приложения.

+0

Защита выхода из системы() = { регистра } Защиты регистра() = { logger.debug ("вызов") Шаблона } – chenwenfeng 2010-11-29 02:42:05

+0

Я хочу, чтобы позвонить в регистре выхода из системы, но это не работает – chenwenfeng 2010-11-29 02:42:54

6

Для перенаправления вы просто вызываете действие. Из примера в documentation:

public static void show(Long id) { 
    Article article = Article.findById(id); 
    render(article); 
} 

public static void edit(Long id, String title) { 
    Article article = Article.findById(id); 
    article.title = title; 
    article.save(); 
    show(id); 
} 

В конце действия редактирования, вызов, чтобы показать (...) будет вызывать перенаправление в браузере клиента, как если бы они попали один и тот же URL-адрес, который направляет в метод показа.

12

Просто, чтобы добавить к выше ответов, вот как вы перенаправлять на внешний URL:

государственной статической силы индекс() { редирект («http://geeks.aretotally.in»); }

4

Поскольку ни один из этих ответов не предоставляет общий/многоразовый метод для этого, вот мой код. Это позволяет вам создавать любое количество переадресаций в файле conf/routes без создания контроллера для каждого.

Да, это тривиально, но, возможно, это кому-то полезно.

конф/маршруты:

GET  /admin  Application.redirect(url:'/admin/index.html') 

приложение/контроллеры/Application.java:

public class Application extends Controller { 

    public static void redirect(String url) { 
     redirect(url, true); 
    } 
} 
Смежные вопросы