Я не уверен, что это не работает так, как задумано, просто я запутался.
Что я хотел бы сделать, так это асинхронно задержать действие, и await(int millis)
, и мне кажется,чтобы стать друзьями.
Вот что происходит:
1. Application.index
отображает форму, которая отправляет сообщение POST на Application.something
.
app / controllers / Application.java
public static void index() {
render();
}
app / views / Application / index.html
#{form @Application.something()}
<input type="submit">
#{/form}
2. Application.something
делает свое дело и затем возвращается к index
.
app / controllers / Application.java
public static void something() {
await(500);
// Here be business
index();
}
3. При воспроизведении возникает ошибка приложения: «Шаблон Application /thing.html не существует» .
Поэтому, когда render()
вызывается в Application.index
после того, как выполнение в Application.something
было приостановлено / возобновлено, он пытается воспроизвести шаблон Application.something
, который, конечно, не существует.
Если я удаляю await(500)
, все работает простоштраф (302 выдается иindex
отображается как положено).
Я могу принудительно перенаправить с помощью
redirect("/");
и получить желаемый результат, но это выглядит ужасно.
Я могутакже установите
request.action = "Application.index";
вручную сразу после await
, и рендер в Application.index
работает (фактически, магия в Controller.template()
работает), как и предполагалось.
Такв принципе, все ли в порядке, и я вынужден жить с использованием строк после await
вместо вызовов методов или что-то не так?
Приветствия, Тобиас.