2014-09-02 4 views
1

Я хочу иметь что-то вродеКак играть в игру! scala шаблон без маршрутизации через контроллер?

Маршруты

GET /endpoint pathToTemplate.templateName.scala.html 

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

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

@import tool.values._ 

<p> 
    @Tool.getValue() 
<p> 
+1

Это невозможно. Вы также можете нарушить парадигму MVC, вызывая подобные функции из представления. Обычно они передаются от контроллера к виду. –

ответ

3

невозможно достичь вашего решения желания, но вы можете сделать обходной путь с одним контроллером и динамическим составлением URL-адресов.

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

object GlobalController extends Controller { 

    private val getRouterMap = Map(
    "view1" -> views.html.view1(), 
    "view2" -> views.html.view2(), 
    "sub/view3" -> views.html.view3() 
) 

    def route(path: String) = Action { implicit request => 
    Ok(getRouterMap.getOrElse(path, views.html.notFound())) 
    } 

} 

Во-вторых, в конце файла маршрута определите отображение для созданного действия, как показано ниже.

GET   /*path    controllers.GlobalController.route(path) 

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

Подсказка

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

Смежные вопросы