完全なコンテキスト:私はgrailsアプリケーションを使用して複数のファイルを処理しようとしています。私が表示するコードは、処理されたファイルに関する情報を提供する後処理ページから来ます。gspを反復してマップ要素にアクセスするGrails対
私の最初の感覚は、このようなコードを使用していた:<g:each
ループに表示される内容は、いつも私が1に受け取ったkey=value
などExcelRows=14
として報告し、なぜ私が理解していないことである
<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>
、出力ケース。
私はコメントを切り替えます(<%--
タグが使用されていることに注意してください)。私の "ExcelRows
"列から、私はちょうど "14"を取得します。 <g:each
ループが同じことをしなければならないと私の考えは間違っていますか?直観的にはFor each item in fileContents display item
になります。
私のコントローラコード:あなたはEntry
秒で作業することがありますマップを反復すると
def processFile = {
def uploadedFile = request.getFile('excelFile')
は
def fileContents = [
ExcelRows:"${ods.numberOfRows}",
policies:"${ods.numberOfPolicies}",
originalFileName: "${ods.originalFilename}",
Size:"${ods.size}"
]
[fileContents:fileContents]
}
uはあなたのコントローラのコードを投稿できますか?それはあなたのビューに 'fileContents'モデルを返すのですか? –
@Arthur Neves関連コントローラコード – avgvstvs
を追加しました。オブジェクトのfileContentsはマップではありません!それでキー=値を表示するのはなぜですか? –