【问题标题】:Persisted Changes in Grails not showing up in applicationGrails 中的持久更改未显示在应用程序中
【发布时间】:2011-03-09 18:27:37
【问题描述】:

我刚刚从今天的教程开始开发 Grails 应用程序,我注意到当我保存对域对象的更改时,更改不会立即反映在整个应用程序中。

我有一个简单的 Account 对象,用于登录应用程序,并且我有提供 CRUD 功能来更改对象的基本 Grails 脚手架。

登录后,index.gsp 会显示来自用户帐户对象(传记、描述等)信息的欢迎信息 - 但是,如果我更改帐户描述(使用脚手架 CRUD)并返回索引,则更改不会反映(尽管如果我查看帐户的默认 list.gsp 页面,更改会反映在那里)。

---编辑---

帐户域对象是我们用来验证/登录的对象。 一个示例索引 sinppet 如下所示:

<p class="header">${session.user.login}'s Profile</p>

这只是向用户表示欢迎 - 但是,如果我转到帐户控制器 CRUD 页面并更改用户名(登录名),那么它不会反映在索引中(即使在完全刷新浏览器之后)。我注意到如果我让它过期会话然后重新登录一切都很好。我是否应该通过 session.user 以外的其他方式获取帐户对象?

我是否遗漏了一些明显的东西?

谢谢

【问题讨论】:

  • 也许是个傻问题,但是当你返回索引时,你是真的在刷新页面还是只是使用返回按钮?
  • 我已经尝试使用脚手架“主页”按钮以及在索引页面上进行硬刷新。
  • 什么版本的 Grails?你正在使用什么教程(链接?)
  • 它的 Grails 1.3.7。该教程实际上是某人给我的名为 GettingStartedWithGrails 的 PDF(它是一本电子书) - 无法在线找到您不需要注册的链接。 Domain 类只是一个包含几个字段的简单类,控制器保存/列表/等都是直接来自“grails generate-all Account”
  • 您能显示/引用您的saveindex 操作代码吗?

标签: grails groovy grails-orm


【解决方案1】:

嗯,我知道Getting Started with Grails。它非常适合初学者,尽管有一些未更新的细节。我记得,它的默认主页有关于控制器的信息,但没有任何域对象?

关于您的问题,我认为您应该检查主页/和控制器文件的代码。它位于\grails-app\views\grails-app\controller

【讨论】:

  • 感谢 Hoang,我查看了视图和控制器,它们只是为基本 CRUD 操作生成的脚手架代码。
【解决方案2】:

好的,我已经解决了这个问题 - 所以 session.user 在会话过程中没有被更新。

我刚刚创建了一个自定义 tagLib 来获取当前用户并显示相关详细信息,而不是尝试直接从 session.user 中提取它们..

【讨论】:

    猜你喜欢
    • 2015-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-22
    相关资源
    最近更新 更多