我的環境設置很好,使用Google AppEngine中的Scala,StringTemplate。我無法循環瀏覽地圖並將其顯示在模板中。當我剛分配的字符串的簡單列表的模板它的工作原理使用:使用Scala和StringTemplate,我如何通過地圖循環
在斯卡拉的Servlet:
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創建地圖並分配給模板的嘗試都會給我一個錯誤。這裏是我的嘗試,這是不行的:
在斯卡拉的Servlet:
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類TitleURL的簡單的想法(網址:字符串,標題:字符串)'並使用它而不是地圖不起作用。根據Marcus的說法,它會產生一個錯誤,如「類FlickrTestServlet $ TitleURL $ 2在模板上下文中沒有這樣的屬性:title [templates/flickr_template if(photos)_subtemplate anonymous]」。 – 2010-06-11 18:19:03