这是gsp代码:
td align="left" class="pinkbox" style="height: 35px" width="43%">
${fieldValue(bean: bookInstance, field: "description")}<br />
input type="text" id="description" name="description" value="${fieldValue(bean: bookInstance, field: "description")}" size="30px" />
g:link controller="conference" action="edit" id="${bookInstance.id}">Update </g:link></td>
控制器中的groovy代码:
def edit ={
println params.description
def bookInstance = Book.get(params.id)
try{
bookInstance.description = params.description
bookInstance.save()
redirect(action:'show',id:bookInstance.id)
}catch(Exception e){
flow.message ="an error occurred during update"
redirect(action:'show',id:bookInstance.id)
}
}
当我在文本框控件中插入一个值时,它返回一个空值。我尝试从输入类型文本省略值属性,但没有任何影响
答案 0 :(得分:3)
我认为您的问题是您使用链接来调用控制器操作,而您没有提交任何参数数据。尝试将params属性添加到g:link中,详见g:link文档:
http://www.grails.org/Tag+-+link
请注意,如果您真的想使用这样的链接,则必须使用javascript从输入中的值填充参数。
或者,也许更正确的是使用表格。你应该尝试像
这样的东西<g:form controller='thecontroller' method='edit'>
<g:textarea name="" value="" type="text"></g:textarea>
... more fields here including a submit ...
</g:form>
如果你真的想让'按钮'成为一个链接,你可以使用javascript让它提交表单。但是,使用预期的形式可能是最好的。 Grails就是会议......
答案 1 :(得分:0)
input type =“hidden”name =“Id”value =“$ {bookInstance.id}”&gt;
td align =“left”class =“pinkbox”style =“height:35px”width =“43%”&gt;
$ {fieldValue(bean:bookInstance,field:“description”)}
g:textField type =“text”name =“description”value =“$ {fieldValue(bean:bookInstance,field:”description“)}”size =“30px”/&gt;
g:actionSubmit action ='edit'value =“Update”&gt;