我尝试将数据上传到Grails应用。这非常好,并且在数据库中创建对象,并且还存在上载的文档。不幸的是,我在创建后直接收到404错误。
我使用grails 2.3.5,代码如下:
保存行动:
@Transactional
def save(Book bookInstance) {
if (bookInstance == null) {
notFound()
return
}
if (bookInstance.hasErrors()) {
respond bookInstance.errors, view:'create'
return
}
if(!bookInstance.id){
bookInstance.id = UUID.randomUUID().toString()
}
bookInstance.save flush:true
request.withFormat {
form {
flash.message = message(code: 'default.created.message', args: [message(code: 'Book.label', default: 'Book'), bookInstance.id])
redirect bookInstance
}
'*' {
respond bookInstance, [status: CREATED]
}
}
}
GSP:
<g:uploadForm action="save" class="form-horizontal">
<g:render template="form"/>
<div class="form-actions margin-top-medium">
<g:submitButton name="create" class="btn btn-primary" value="${message(code: 'default.button.create.label', default: 'Create')}" />
<button class="btn" type="reset"><g:message code="default.button.reset.label" default="Reset" /></button>
</div>
</g:uploadForm>
使用标签而不是它的工作原理。 enctype =“multipart / form-data”导致错误。
我可以尝试解决这个问题?
由于
答案 0 :(得分:2)
您应该检查conf/Config.groovy
并检查multipartForm: 'multipart/form-data',
是否存在grails.mime.types
的值,例如:
grails.mime.types = [
...
form: 'application/x-www-form-urlencoded',
multipartForm: 'multipart/form-data',
]
您还需要在withFormat
声明中指定它是多部分表单:
request.withFormat {
form multipartForm
答案 1 :(得分:0)
您可以尝试'渲染'或'前进'而不是“回复”。