如何在 GRAILS 中调用更新的同一页面上显示保存的状态

发布于 2024-12-29 15:09:00 字数 300 浏览 1 评论 0原文

对于 Grails 来说,这可能是一个简单的问题。

我试图将一些值保存到数据库中,因此我在 GSP (info.gsp) 中创建了一个包含两个文本字段和一个按钮的简单表单。当按下按钮(更新)时,它会调用控制器上的方法 update() 。保存更改。到这里就很好了。

我想在同一个 gsp (info.gsp) 上显示“已保存”以及已保存的新值。 render 将我带到一个新页面。

请大家帮忙看看该怎么做。

谢谢 萨那

New to Grails and this may be simple problem.

I am trying to save some values to database, so I created a simple form with two text fields and a button in GSP (info.gsp). When button (update) is pressed it calls method update() on the controller & saves the change. Good till here.

And I want to show "saved " on the same gsp (info.gsp) with the saved new values. render takes me to a new page.

Please help how to do it.

thanks
Sana

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

廻憶裏菂餘溫 2025-01-05 15:09:00

例如,在保存对象的操作中渲染要显示的值

    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>

On the action that is saving your object render the value you want to display for example

    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!!!!"
}

and on your view update a placeholder using its ID. In my example, submitToRemote has a update attribute that will take care of it. Hope this code helps

<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>

半葬歌 2025-01-05 15:09:00

在控制器中重定向之前,添加如下内容:

flash.message = "I saved something"

然后在 GSP 中添加以下内容:

<g:if test="${flash.message}">
  <div class="message">${flash.message}</div>
</g:if>

另请注意,如果生成 Grails 脚手架代码,您将看到与我刚刚向您展示的完全相同的内容。

Before you redirect in your controller add something like:

flash.message = "I saved something"

And then in your GSP, have the following:

<g:if test="${flash.message}">
  <div class="message">${flash.message}</div>
</g:if>

Also note that if you generate the Grails scaffold code, you'll see the exact same thing I just showed you.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文