gpt4 book ai didi

grails - 如果提交表单标签是 uploadForm,为什么 Controller 中的更新方法不起作用

转载 作者:行者123 更新时间:2023-12-02 04:56:59 25 4
gpt4 key购买 nike

我创建了一个名为 Test 的非常简单的域类,它只有一个字段:name 并且我运行了 grails generate-all Test 来创建 Controller 和 View 。 Controller 中的更新方法是:

@Transactional
def update(Test testInstance) {
println("do you go inside?")

if (testInstance == null) {
notFound()
return
}

if (testInstance.hasErrors()) {
respond testInstance.errors, view:'edit'
return
}

testInstance.save flush:true

def uploadedFile = request.getFile('myFile')
if (!uploadedFile.empty){
println "Class: ${uploadedFile.class}"
println "Name: ${uploadedFile.name}"
println "OriginalFileName: ${uploadedFile.originalFilename}"
println "Size: ${uploadedFile.size}"
println "ContentType: ${uploadedFile.contentType}"
}

request.withFormat {
multipartForm {
flash.message = message(code: 'default.updated.message', args: [message(code: 'Test.label', default: 'Test'), testInstance.id])
redirect testInstance
}
'*'{ respond testInstance, [status: OK] }
}
}

编辑.gsp

<%@ page import="Test" %>
<g:uploadForm url="[resource:testInstance, action:'update']" method="PUT" >
<g:hiddenField name="version" value="${testInstance?.version}" />
<fieldset class="form">
<g:render template="form"/>
</fieldset>
<fieldset class="buttons">
<g:actionSubmit class="save" action="update" value="${message(code: 'default.button.update.label', default: 'Update')}" />
</fieldset>
</g:uploadForm>

_form.gsp

<%@ page import="Test" %>
<div class="fieldcontain ${hasErrors(bean: testInstance, field: 'name', 'error')} ">
<label for="name">
<g:message code="test.name.label" default="Name" />
</label>
<g:textField name="name" value="${testInstance?.name}"/>
<br>
<input type="file" name="myFile" />
</div>

更新方法无效。实际上,Grails 根本没有调用更新方法(没有显示输出)。

你们知道为什么吗?

谢谢

最佳答案

谢谢你的帮助

我将 HTML 格式更改为

<g:uploadForm action="update" method="POST" >

一切正常

关于grails - 如果提交表单标签是 uploadForm,为什么 Controller 中的更新方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com