Grails GSP:无需重定向即可上传文件

时间:2018-09-26 11:27:38

标签: grails gsp

我正在使用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?

0 个答案:

没有答案