Grails的新手,这可能是一个简单的问题。
我正在尝试将一些值保存到数据库中,因此我在GSP(info.gsp
)中创建了一个包含两个文本字段和一个按钮的简单表单。当按下按钮(更新)时,它会调用控制器上的方法update()
。保存更改。好到这里。
我想用保存的新值在同一个gsp(info.gsp
)上显示“已保存”。 render
将我带到了一个新页面。
请帮忙怎么做。
感谢 萨纳
答案 0 :(得分:0)
在您的控制器中重定向之前,请添加以下内容:
flash.message = "I saved something"
然后在您的GSP中,请注意以下事项:
<g:if test="${flash.message}">
<div class="message">${flash.message}</div>
</g:if>
另请注意,如果您生成Grails脚手架代码,您将看到我刚刚向您展示的完全相同的内容。
答案 1 :(得分:0)
在保存对象的操作上,渲染要显示的值,例如
def save() {
println params
def bookInstance = new Book(params)
if (!bookInstance.save(flush: true)) {
render "not saved"
}
flash.message = message(code: 'default.created.message', args: [message(code: 'book.label', default: 'Book'), bookInstance.id])
render bookInstance.id // "saved!!!!"
}
并在您的视图中使用其ID更新占位符。在我的示例中,submitToRemote有一个更新属性来处理它。希望这段代码有帮助
<html>
<head>
<title>Page Title</title>
<meta name="layout" content="main"/>
<r:require modules="jquery"/>
<g:javascript library="application" />
<modalbox:modalIncludes />
</head>
<body>
<g:form name="myform" action='save'>
book: <input name="name" type="text" />
<g:submitToRemote action='save' update="updateMe" name="myname"/>
</g:form>
<div id="updateMe">
</div>
</<body>