I just started using the Play2.0 Framework and I'm trying to use the main template in my home/index
template. The issue I'm having is it can't find "main" when its in the Shared folder, if I take it out and put it in the Views root then it works fine.
So I'm wondering how I can reference the main.scala.html
from index.scala.html
?
My folder structure is as follows:
- Views
- Home
- index.scala.html
- Shared
- main.scala.html
- Home
My code in index.scala.html
is:
@head = {
}
@content = {
<b>Home Screen</b>!!
}
ERROR: @main(title = "Home",head, content)
The error I get is:
not found: value main.
Once you get into subfolders for views there is this like "pseudo-package" called "html". I'm not entire sure how it works but try this:
You can use:
For security and performance reasons Play compiles templates to Scala functions and stores it in managed folder
/target/scala-2.9.1/src_managed/main/views
, so you can preview it to find correct path.rules are easy for view files saved with pattern:
/app/views/viewName.scala.ext
(whereext
can behtml
,xml
ortxt
) Play will compile views to:view.ext.viewName
/app/views/SomeSub/OtherSub/viewName.scala.ext
it will be:view.ext.SomeSub.OtherSub.viewName
so:
etc...
There is some case with
/app/views/tags
package which is auto imported to the views, so you can use/app/views/tags/myTag.scala.html
just with:@tags.myTag(args)
syntax in any view.