Полный контекст: я пытаюсь обработать несколько файлов с помощью приложения Grails.Код, который я покажу, взят со страницы постобработки, где он предоставляет информацию об обработанных файлах.
Мой первоначальный смысл состоял в том, чтобы использовать код, подобный следующему:
<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]
}