Как поставить Play! контроллеры в произвольном подпакете - PullRequest
5 голосов
/ 28 июня 2011

Я использую Play Framework для веб-приложения на Java.

Я бы хотел поместить контроллер учетной записи в подпакет "account", например:

|- controllers
   |- account
      |- Account.java

Пока мои взгляды организованы как:

|- views
   |- Account
      |- index.html

Файл Account.java содержит:

package controllers.account;

import play.mvc.Controller;

public class Account extends Controller {

    public static void index() {
        render();
    }

}

Я бы хотел иметь следующее поведение:

при запросе к http://localhost/account/{action} он перенаправляется на контроллер Account.java, который отображает представление в папке Account.

Какие-нибудь советы?

Ответы [ 4 ]

7 голосов
/ 25 октября 2013

Если вы создадите структуру пакета, обратите внимание, что есть несколько новых не синтаксических синтаксисов:

Обратный поиск контроллера

Поместите имя пакета между «контроллерами» и «маршрутами»:

controllers.account.routes.Account.index

например. в представлении

<a href="@controllers.account.routes.Account.index" class="btn">Exit</a

Просмотр ссылок в контроллере

Имя пакета следует за 'views.html':

return ok(views.html.account.index.render());
1 голос
/ 28 июня 2011

Вы пытались поместить свои представления в структуру, которая соответствует структуре вашего контроллера?

|- views
   |- account
      |- Account
         |- index.html

Кроме того, вы всегда можете передать имя представления вызову render ():

render("Account/index.html");

Лично я всегда буду придерживаться встроенной структуры, которая снабжена игрой.В противном случае вы могли бы легко оказаться в рефакторинге ада, когда вы перестроили свою структуру контроллера где-нибудь в будущем ...

0 голосов
/ 24 января 2017

Если вы хотите сослаться на контроллер, расположенный в подпакете из представления и использовать такую ​​структуру, как это

  |- com
    |- company
      |- system
        |- controllers
          |- MyController
  |- views
    |- index.html

и маршрут, сконфигурированный в conf / route как

GET        /api/hello com.company.system.controllers.MyController.hello 

можно использовать следующую для создания ссылки на метод привет из представления

<a href="@com.company.system.controllers.routes.MyController.hello">Hello!</a>
0 голосов
/ 28 июня 2011

Вам необходимо определить маршрут по конф / маршруты. Что-то вроде: * / account / $ {action} account.Account. $ {action}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...