【问题标题】:Developing webapplications with grails - no idea how it really works使用 grails 开发 web 应用程序 - 不知道它是如何工作的
【发布时间】:2011-06-23 11:48:26
【问题描述】:

我对 Grails 非常陌生,我试图了解它是如何工作的。我做了一些教程并编写了一个带有 mysql 数据库连接的示例应用程序。我有三个表,因此三个域类和三个控制器使用 def scaffold = true。所以视图是自动生成的。现在我可以添加和删除......我的表中的数据。那行得通。

但现在我不知道该怎么做。我的意思是,创建这些表并填充它们很好,很高兴这可以这么快,但是......现在我真的想要开发一个应用程序!通常我使用 Spring Framework、Spring Security、Spring MVC 等来生成 Web 应用程序。在那里,一切都是合乎逻辑的。我收到了请求,映射到控制器,处理请求的类,返回的答案,呈现的 jsps ......合乎逻辑!

在 Grails 中,我什至不知道从哪里开始真正的应用程序!我发现的所有教程都显示相同:设置这些表格并能够填充它们,很好,很好 - 但在那之后?

我在哪里保存“main.gsp”。我需要一个控制器吗?启动时的应用程序如何重定向到“main.gsp”。

我在哪里可以定义“真正的逻辑” - 我想开发类似“具有多个答案的问题 - 尝试选择正确的答案” - 应用程序。好吧,我必须承认,我真的不知道从哪里开始。而且我看不到控制器的使用以及将数据添加到我的应用程序中的表的可能性。这适用于管理员,但不适用于用户。

谁能给我一个提示如何继续?或者也许有人知道一个很好的教程,它不是关于“设置域类、使用脚手架的控制器、向数据库添加数据”——我认为它没有多大意义。

感谢您的帮助! :-)

[编辑] 感谢您的回答!服务,这正是我想要的。我想我只是必须更加熟悉它。教程只是让我感到困惑,但现在我理解得更好了!

【问题讨论】:

  • 有很多使用 Grails 的资源。是否有任何资源可以从内部解释它是如何工作的?也就是说,当我输入一个 url 并打开一个 Web 应用程序时,究竟会发生什么?当我点击某个链接时究竟会发生什么?换句话说,控制到底是如何通过某个动作分派给某个控制器的?

标签: grails groovy


【解决方案1】:

如果您熟悉 Spring 和 Spring MVC,那么 grails 中的概念应该不会让您感到惊讶。 Grails 实际上在幕后使用了 Spring MVC。

Grails 可以自动生成域类、控制器和视图,就像您在教程中尝试过的那样。这是为您的应用程序提供一个起点。对于那些教科书教程来说,这通常已经足够了。但是,对于实际应用程序,您可能并不总是有 1 个域类到 1 个控制器到 1 个视图集。您可能并不总是在该域上执行 CRUD 操作。为此,您需要更深入地研究 Grails。您可以在 Grails 中完成之前在 Spring MVC 中完成的所有操作!

这里有一些链接可以帮助您开始。

如果您想更好地理解“流程”。请求如何映射到控制器/视图,请查看配置目录中的 UrlMappings.groovy。相关文档位于此处:URLMappings

如果您想更好地了解控制器,请查看:Controllers。请记住,您的控制器不需要在域模型上工作。这只是默认约定。它们的工作方式类似于 Spring MVC 控制器。

模型在 Grails 中很简单。通常,控制器只返回您要返回的项目的地图。在 Spring MVC 中,您通常会创建一个 Model 对象,而在 Grails 中,您通常会返回类似 [name: bean1, name2: bean2] 的内容。这使您可以轻松地在竞争中获得这两个 bean。

【讨论】:

    【解决方案2】:

    从“Grails In Action”开始。第一章将为您提供有关创建 CRUD 示例应用程序的详细信息,但进一步阅读您会更好地理解 grails 流程。服务用于逻辑,控制器用于委托。您不需要像在 Struts、Spring 中所做的那样显式的 xml 映射,因为这里的所有内容都适用于 Convention。

    【讨论】:

    • 希望 :) 因为我有一份 Grails In Action ^_0 并很快开始我的旅程 :)
    【解决方案3】:

    这里是控制器信息:Controllers

    您还可以使用相同的手册来查找有关其他内容的信息。例如,您应该阅读The Service Layer 章节中的业务逻辑放置位置。

    【讨论】:

      【解决方案4】:

      阅读 Vishal Layka、Christopher M. Judd、Joseph Faisal Nusairat 和 Jim Shingler 的 Beginning Groovy, Grails and Griffon。他们在本书中构建了一个真正的 Web 应用程序,其中包含模型、数据库访问、身份验证、css、模板和布局以及许多其他内容。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-02
        • 2021-02-24
        • 2017-05-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多