完整上下文:我正在嘗試使用grails應用程序處理多個文件。我將顯示的代碼來自後處理頁面,其中提供了有關所處理文件的信息。Grails在gsp中迭代訪問Map元素
我最初的感覺是用這樣的代碼:
<table>
<tr>
<th>Parsed from Excel:</th>
<th>Uploaded to DS:</th>
<th>File Name:</th>
<th>Size:</th>
</tr>
<tr>
<g:each in="${fileContents}" var="item">
<td>${item}</td>
</g:each>
<%--
<td>${fileContents.ExcelRows?.encodeAsHTML()}</td>
<td>${fileContents.policies?.encodeAsHTML()}</td>
<td>${fileContents.originalFileName?.encodeAsHTML()}</td>
<td>${fileContents.Size?.encodeAsHTML()}</td>
--%>
</tr>
</table>
現在,我不明白的是爲什麼在<g:each
循環顯示的內容始終報告key=value
這樣ExcelRows=14
我在一個已經收到輸出案例。
當我切換註釋時(注意正在使用<%--
標記),它的工作原理與預期完全相同。從我的「ExcelRows
」列中,我只得到「14」。我的想法有什麼問題,<g:each
循環應該做同樣的事情?直覺上它歸結爲For each item in fileContents display item
。
我的控制器代碼:
def processFile = {
def uploadedFile = request.getFile('excelFile')
//...snipped
def fileContents = [
ExcelRows:"${ods.numberOfRows}",
policies:"${ods.numberOfPolicies}",
originalFileName: "${ods.originalFilename}",
Size:"${ods.size}"
]
[fileContents:fileContents]
}
ü可以發佈您的控制器代碼?即將模型'fileContents'返回到您的視圖? –
@Arthur Neves添加了相關的控制器代碼 – avgvstvs
所以,你的對象fileContents是一個Map而不是一個列表!所以這就是爲什麼顯示key =值 –