play2의 template(twirl template engine)을 사용하는 예제는 다음 링크에 있지만.. 조금 잘 눈에 안 들어온다.
https://www.playframework.com/documentation/2.6.x/ScalaTemplates
코드로 간단히 표현하면 다음과 같다.
Controller는 다음과 같다.
def index= Action { implicit request =>
val seq = Seq("Samuel", "Hardy", "Dennis", "Issac")
Ok(views.html.update(new java.util.Date, seq)) }
update.scala.html은 다음 과 같다. (template paramter, template content로 나뉘어져 있다)
@(date: java.util.Date, seq: Seq[String])
<html>
<body>
<h1>Today : @date.toString!</h1>
<ul>
<li><code>List</code>: @List(1,2,3)</li>
<li><code>Seq</code>: @Seq("a", "b", "c")</li>
<li><code>Some</code>: @Some("foo")</li>
<li><code>None</code>: @None</li>
<li><code>Left</code>: @Left("foo")</li>
<li><code>Right</code>: @Right("bar")</li>
</ul>
<ul>
@seq.map { order =>
<li>@order.toLowerCase</li>
}
</ul>
</body>
</html>
결과는 깔끔하게 잘 나온다.
Today : Thu Nov 23 19:52:04 KST 2017!
List
: 123Seq
: abcSome
: fooNone
:Left
: Left(foo)Right
: Right(bar)
- samuel
- hardy
- dennis
- issac
이번엔 주석과 @display 이다. 이것은 현재 template안에서 어떻게 표현하고 싶은지 보여줄 기능이라 하겠다.
@**************************
* import *
***************************@
@display(date: java.util.Date) = {
@date.toString (@date.hashCode())
}
<ul>
<li>@display(date)</li>
</ul>
결과는 다음과 같다.
- Thu Nov 23 19:15:33 KST 2017 (-403555210)
@defining(seq) { name =>
<ul><li>Hello @name </li></ul>
}
- Hello SamuelHardyDennisIssac
@name = {samuel}
@name
@{val name = "samuel"; name}
'scala' 카테고리의 다른 글
[scala] play framework 2.6에 reactjs 사용시 유의할 점 (0) | 2017.11.27 |
---|---|
[scala]play2.6에 webjars 연동하기 (0) | 2017.11.27 |
[scala] 복합 쿼리 실행 예제 - query를 두개로 묶기 (0) | 2017.11.21 |
[scala] elastic4s의 json 쿼리 요청 보기 (0) | 2017.11.21 |
[scala] connection pool과 with 메소드로 간결하게 코딩하기 (0) | 2017.11.21 |