我把一个值放入一个输入类型的文本,但在params.descrption中有空值。为什么?

时间:2010-12-04 09:46:38

标签: grails

这是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)
  }
}

当我在文本框控件中插入一个值时,它返回一个空值。我尝试从输入类型文本省略值属性,但没有任何影响

2 个答案:

答案 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;