【问题标题】:Grails list view not workingGrails 列表视图不起作用
【发布时间】:2015-05-19 08:39:10
【问题描述】:

我正在试用 Mike Kelly 的 this youtube link 教程。

我已成功完成所有安装。现在尝试dynamic scaffolding,但它的列表不起作用。

这是我添加新的EndUsershow 页面的样子:

现在,当我尝试查看EndUsers 列表时(请参见上图左下角的指向链接),该链接实际上指向index 页面。当我点击它时,它会打开索引页面,其中 NO 行列在表中(见下图)。

我也尝试使用 url:http://localhost:9000/ProjectTracker/endUser/list 访问列表,但结果导致 404 错误:

当我看到数据库控制台时,我发现数据被插入其中:

所有文件(控制器、域文件等)与视频教程中提到的相同

【问题讨论】:

  • 您使用的是哪个版本的 grails?和教程里的一样吗?
  • 我正在使用来自 spring.io/tools/ggts/all 的最新 ggts(基于 eclipse 4.4.2 的 windows ggts),它有 grails-2.4.4
  • Grails 2.4.4 使用“索引”而不是“列表”

标签: grails grails-domain-class grails-controller


【解决方案1】:

这适用于 grails 2.4.4 版:

正如@DavidChavez 所建议的,我们可以按照给定的方式编写indexlist 方法。或者仅仅依靠动态脚手架,我们可以忽略编写/删除indexlist方法。动态脚手架会默认调用index,内部调用list方法。

【讨论】:

  • 谢谢,你刚刚救了我的命。我只使用动态脚手架。但是控制器有一个默认生成的索引方法。阅读您的评论后,我删除了索引方法,瞧,我能够看到列表。
【解决方案2】:

从 grails 2.3.x 开始,list.gsp 被替换为 index.gsp 现在你必须找出为什么记录没有保存在数据库中。

脚手架在2.4.4中生成index和list方法的方式应该是这样的:

def index() {
    redirect(action: "list", params: params)
}

def list(Integer max) {
    params.max = Math.min(max ?: 10, 100)
    [endUserInstanceList: EndUser.list(params), endUserInstanceTotal: EndUser.count()]
}

试试那些。

【讨论】:

  • 哦,好的。 . (我忘了提到问题)实际上我查看了数据库,我看到数据被插入到数据库中并且在那里可用。但它没有在页面上列出。
  • 在教程中,他使用的索引没有关于对象列表的信息。尝试使用 generate-controller 脚本而不是使用这些方法。 grails.github.io/grails-doc/2.4.4/ref/Command%20Line/…您使用的教程已过时,建议阅读官方文档或尝试找到您正在使用的grails版本的书
  • ya.. 解决了问题!使用静态脚手架工程。但这是一项繁琐的任务。现在,我必须在新版本中看到动态脚手架。谢谢!
【解决方案3】:

在 EndUserController 中试试这个,用于 grails 2.4.4

def index() {
    [endUserInstanceList: EndUser.list(params), endUserInstanceTotal: EndUser.count()]
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    相关资源
    最近更新 更多