【发布时间】:2013-08-16 15:00:18
【问题描述】:
我想用 Clojure 的 Enlive 为像 html 页面这样的“表格”创建一个模板,它应该有一个标题和行。我想用来自这张地图的数据填充这个“表格”。基本上我想用键填充标题,并用来自 :event-data 键的每个映射的 val 填充单元格。
(def dummy-content
{:title "Events Mashup"
:event-data [{ :event-name "event name 1"
:performer "performer 1"
:date "date 1"
:start-time "start time 1"
:end-time "end time 1"}
{:event-name "event name 2"
:performer "performer 2"
:date "date 2"
:start-time "start time 2"
:end-time "end time 2"}]})
我的 sn-ps 和模板如下所示:
(defsnippet header-cell "index.html" [:.psdg-top-cell] [value] [:.psdg-top-cell]
(defsnippet value-cell "index.html" [:.psdg-right] [value] [:.psdg-right]
(deftemplate mshp "index.html" [content]
[:.psdg-top] (append (for [c (keys content)] (header-cell c)))
[:.psdg-right] (append (for [v (vals content)] (value-cell v))))
并且 index.html 有这些标签,与此模板相关。
<div id="psdg-top">
<div class="psdg-top-cell" style="width:129px; text-align:left; padding- left:24px;">Summary</div>
<div class="psdg-top-cell">Website.com</div>
</div>
<div class="psdg-right">10 000</div>
当我调用模板时出现此错误:
=> (mshp (:event-data dummy-content))
ClassCastException clojure.lang.PersistentHashMap 无法转换为 java.util.Map$Entry clojure.lang.APersistentMap$ValSeq.first (APersistentMap.java:183) 我做错了什么?
【问题讨论】: