Google AppEngine 내의 스칼라, StringTemplate을 사용하여 환경 설정을 멋지게 조정했습니다. 맵을 반복하면서 템플릿에 표시하는 데 문제가 있습니다. 내가 템플릿에 단지 문자열의 간단한 목록을 할당 할 때 사용하여 작동합니다 : 스칼라 서블릿에서Scala와 StringTemplate을 사용하여지도를 반복하는 방법
:
var photos = List[String]()
//... get photo url and title ...
photos = photo_url :: photos
template.setAttribute("photos", photos: _*)
템플릿 :
$photos: { photo|
<div><img src="$photo$_s.jpg"></div>
}$
위의 작품. 그러나 url과 title을 사용하여 Map을 생성하고 템플릿에 할당하려고 시도하면 오류가 발생합니다.
를 스칼라 서블릿에서 : 템플릿에서
var photos = List[Map[String,String]]()
//... get photo url and title ...
photos = Map("url" -> url, "title" -> title) :: photos
template.setAttribute("photos", photos: _*)
:
$photos: { photo|
<div><img src="$photo.url$_s.jpg" title="$photo.title$"></div>
}$
이 나에게
Class scala.collection.immutable.Map$Map2 has no such attribute: title in template context
생각/다음과 같은 오류를 제공합니다 다음은 작동하지 않습니다 내 시도이며, 아이디어? 당신 같이
case class MyPhoto(@BeanProperty val url: String, @BeanProperty val title: String)
def generateMyPhotos() : String = {
val tp = new StringTemplate("$photos: { photo|<div><img src=\"$photo.url$_s.jpg\" title=\"$photo.title$\"></div>}$")
val photos = List(MyPhoto("http://myphoto.com", "my photo"))
tp.setAttribute("photos", photos: _*)
tp.toString
}
이 StringTemplate의 scalasti 라이브러리를 사용하여 (나를 위해 일한 : 렉스의 제안에 위로 다음
는
삭제 된 내 제안 :
이
지금의 StringTemplate 질문에 포함되어 있습니다 그 대신지도를 사용하면 작동하지 않습니다. Marcus에 따르면, "Class FlickrTestServlet $ TitleURL $ 2와 같은 오류가 발생합니다. 템플릿 컨텍스트의 제목 [templates/flickr_template if (photos) _subtemplate anonymous]"과 같은 오류가 발생합니다. –