我正在使用GSP开发上传表单,并希望在上传后在同一页面上显示一条消息,说明上传成功还是失败。我不希望页面更改或刷新。
但是我无法同时停留在页面上并提交上传的文件。
这是我的gsp示例:
<div id="uploadDocumentMessage">
</div>
<g:uploadForm name="uploadDocument" action="uploadDocument" controller="Document">
<g:select name="type" from="${['document1', 'document2', 'document3']}" noSelection="['':'-Choose a type of document-']" required=""/>
<input type="file" name="file" required=""/>
<fieldset class="buttons">
<g:submitToRemote class="save btn btn-primary" update="uploadDocumentMessage" action="uploadDocument"
controller="Document" value="${message(code: 'default.upload.label', args: [''])}" />
<input class="save" type="submit" value="${message(code: 'default.upload.label', args: [''])}"/>
</fieldset>
</g:uploadForm>
这是我的控制器的一个示例:
def uploadDocument(UploadDocumentCommand command) {
if (command == null) {
render 'Invalid input'
return
}
if (command.hasErrors()) {
render 'You didn\'t fill all fields or the file is not a .pdf.'
return
}
...
render 'Upload done'
}
当在表单中将 submitToRemote 标记与 update 属性一起使用时,不会发生页面更改,但是params.file在控制器中为null,从而使命令验证失败
使用常规输入html标签时,上传成功,但发生页面更改。
如何使表单在上一页的同时上传文件并用某些内容更新 uploadDocumentMessage div?