问题标签 [grails]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
15 回答
23553 浏览

java - Grails值得吗?

这是一半的咆哮,一半的问题。

值得使用 Grails 吗?我正在尝试开发一个相对简单的数据库驱动的 Web 应用程序。我的专长是 Java,所以自然而然地,Grails 似乎是一个不错的选择。起初我想使用 Spring、JPA 和 Hibernate,但我以前使用过,并且遇到过各种繁琐的配置和编码工作。Grails 宣称自己解决了这个问题。

我对 Grails 最大的失望是所有的小事情都不起作用。我的意思是它不像人们直觉认为的那样有效。边缘非常粗糙。我经常遇到问题。有时是因为我缺乏对 Grails 的理解——有时我发现了合法的 Grails 错误。

一个主要问题是缺乏良好的 Eclipse 集成。有一个 Groovy 和 Grails 插件,但除了语法高亮之外,它并没有做太多的事情。从 Java 调用 Groovy 以及反之,配置起来非常痛苦。没有良好的 IDE 支持是一大遗憾。

发生的事情是我坐下来尝试开发我的 Web 应用程序。一天结束时,我意识到我花了大约 85% 的时间来调试与 Grails 相关的问题。如果不是 Eclipse 问题,那么它就是急切加载在视图中获取、一对多关系奇怪的空文件错误行为奇怪的属性/getter 错误——它会一直持续下去。这只是我今天遇到的问题的一个示例。我上一次与 Grails 的讨论产生了一大堆不同的问题。

我有时想知道这是否值得。我很好奇其他人是否经历过这种情况。真的有人使用 Grails 来高效地开发 Web 应用程序吗?我应该考虑其他用于快速 Web 开发的框架吗?

0 投票
3 回答
2975 浏览

jsp - Grails renders JSP as blank page

I have a Grails application with a JSP page (I'm porting a legacy JSP application). For some reason, the page renders completely blank. Looking at the HTTP headers I see it's 200 with a content length of 0.

The page is a combination of HTML, tags (${property}), JSP includes (<jsp:include>), and short code snippets (<% code %>, yes I know this is a bad idea). There is nothing in the log file or console that indicates an error. Is Grails somehow silently hiding an exception or error?

Edit: The problem is related to the JSP <jsp:include/> include tag. If I remove all JSP includes then Grails will render. Is Grails compatible with JSP? Since JSP functionality is provided by the web application (Jetty, Tomcat) I would think yes.

Edit: This occurs with Grails 1.0.4 and 1.1 beta 2 (1.1 claims to have added JSP support)

0 投票
3 回答
829 浏览

jsp - GSP 中的窗格组件

所以看起来 Grails 的 GSP 没有包含标签(如果我错了,请纠正我)。最接近“包含”的是使用渲染标签。还有包含插件

就我而言,我有一个经典的左上中右下窗格页面。顶部标题或左侧将包括导航。中间是内容。右侧可能包括广告。在我的应用程序的 JSP 版本中,除了中间的每个窗格都将位于它们自己的 JSP 中。然后,我会将<jsp:include/>各种面板包含(使用)到我的页面中。这是普惠制中的正确方法吗?

在 GSP 中实现这一目标的首选模式是什么?

0 投票
2 回答
821 浏览

css - 样式表上的 Grails NumberFormatException

使用 Grails 1.1 beta2 和一个 JSP 页面。JSP 包括 CSS 参考:

当包含此行时,Grails 会出现以下错误:

如果我删除样式表标签,则页面加载无错误(但没有 CSS)。任何想法为什么?

0 投票
3 回答
2797 浏览

grails - Dreamweaver + Grails

有人试过用 Adob​​e Dreamweaver CS4 做 GSP 设计吗?它支持 JSP,但它不识别 gsp 扩展,即使它识别了,我认为关于它无法识别的 gsp 标签也会有问题。我在这里找到了一本小食谱 ( http://www.bitwalker.nl/blog/using-groovyserver-pages-in-dreamweaver ),用于让 GSP 部分使用 Dreamweaver CS3,但它引用的许多文件和目录不再出现存在于 CS4 中。

0 投票
3 回答
24113 浏览

sql - Grails 中的 SQL/数据库视图

有谁知道通过 Grails 访问 sql 视图的最佳方法是什么(或者这是否可能)?这样做的一个明显方法是对视图使用 executeQuery 从视图中选择一组行,我们不会将其视为域对象列表。然而,即使在这种情况下,对哪个域类运行 executeQuery 也并不明显,因为实际上我们只是使用该域类来针对完全不相关的实体(视图)运行查询。

是否更愿意创建一个表示视图的域类,然后我们可以对那个域类使用 list() ?这似乎会出现问题,因为 Grails 可能希望能够插入、更新、删除和修改任何域类的表模式。

[编辑:
在此跟进问题:Grails Domain Class without ID field or with partial NULL complex field

0 投票
7 回答
9981 浏览

grails - Groovy Mixin?

我正在尝试在我的 Groovy/Grails 应用程序中混入一个类,并且我正在使用docs 中定义的语法,但我不断收到错误消息。

我有一个看起来像这样的域类:

它编译得很好,但由于某种原因它不起作用。包含 ImagesMixin 的文件位于我的/src/groovy/目录中。

我已经使用 Groovy 版本 1.5.7 和 1.6-RC1 尝试过,但没有任何运气。有谁知道我做错了什么?

堆栈跟踪:

0 投票
6 回答
9800 浏览

javascript - 在 Grails 的 JavaScript 源代码中执行 groovy 语句

在 Grails 中,基本上有 2 个地方可以定义 JavaScript 函数,直接在 GSP 上的元素中,以及在 /web-app/js 下的单独 javascript 源文件中(例如 application.js)。我们在 application.js 中定义了一个常用的 javascript 函数,但我们还需要能够使用 groovy 代码动态生成函数的一部分。不幸的是,${some groovy code} 似乎没有在单独的 javascript 源文件中处理。

是通过在 GSP 页面上的脚本标记中定义 javascript 函数来做到这一点的唯一方法,还是有更通用的解决方案?显然,我们可以在模板 GSP 文件中的脚本标记中定义 javascript 函数,该文件将被重用,但是有很多努力将我们的 javascript 函数一起定义在一个地方(即外部 javascript 源文件)。这也有性能优势(javascript 源文件通常只由每个客户端的浏览器下载一次,而不是在他们访问的每个 html 页面的源中重新加载相同的 javascript 函数)。我玩弄了将功能分解为静态和动态部分的想法,将静态部分放在外部源中,将动态部分放在模板 GSP 中,然后将它们粘合在一起,

有任何想法吗?

(编辑:这听起来像是动态生成 JavaScript 函数的一部分,然后下载一次并由客户端一遍又一遍地使用的想法,这是一个坏主意。但是,“动态”部分只会改变也许每周或每月一次,然后很少。大多数情况下,我们只希望从数据库中生成这个片段,即使只有一次,而不是硬编码。)

0 投票
2 回答
7212 浏览

grails - 没有 ID 字段或部分为 NULL 复合字段的 Grails 域类

根据对上一个问题的回答(在此回答:Grails 中的 SQL/Database Views),我尝试使用域类来表示数据库中的视图。然而,这在大多数情况下都非常有效:

我有一个没有单一唯一键的视图。假设基础表如下所示:

A:
id,varX
1,"Blah"
2,"Foo"
3,"Bar"

B:
id,A.id,C.id
1,2,1
2,2,2
3,3,1

C:
id,varY
1,"Boom"
2,"Fizzle"

我的观点是这样的:
A.id,varX,B.id,C.id,varY
1,"Blah",NULL,NULL,NULL
2,"Foo",1,1,"Boom"
2,"Foo" ,2,2,"Fizzle"
3,"Bar",3,1,"Boom"

这正是它应该如何寻找我们的目的。但是,如您所见,我们可以为视图构造的最佳唯一复合 id 是 ['A.id','C.id'],因为它唯一标识每个元素,但 Grails 失败了,因为它似乎无法处理复合 ID 的一部分为 NULL(实际上,list() 返回 4 个对象的列表,第一个是空指针,其余是视图的实际域实例)。

请注意,我们也可以使用 A.id 和 B.id,但它会遇到同样的问题。

另请注意,我们希望至少显示一次表 A 中的元素(表 B/C 中未找到的任何字段为空值),如果表 B 中有多个对应条目,则可能显示多次。

所以,我的问题是两个部分:
1:是否可以定义一个没有任何 ID 字段的 grails 域类?我们不需要任何视图条目的永久句柄,我们只需要列出该视图中的数据。
2:如果不是,是否可以使用复合 ID 字段定义一个 grails 域类,其中一部分可能为 NULL,但即使复合 ID 的一部分为 NULL,它也将唯一标识一行?

我知道我们可以直接使用 Groovy SQL 来直接查询视图而无需关联的域类(实际上我们现在正在这样做),但理想情况下我们希望用域类来表示视图。此外,抛开所有争论不谈,这两个问题可以更通用地应用,而不仅仅是我们的特定问题。

0 投票
2 回答
15624 浏览

java - Grails,使用 withTransaction 插入大量数据会导致 OutOfMemoryError

我正在使用 Grails 1.1 beta2。我需要将大量数据导入我的 Grails 应用程序。如果我反复实例化一个 grails 域类然后保存它,性能会慢得无法接受。以从电话簿中导入人员为例:

事实证明这非常缓慢。Grails 邮件列表中的某个人建议在事务中批量保存。所以现在我有:

这项工作必须更快,至少在最初是这样。每笔交易保存 500 条记录。随着时间的推移,交易需要的时间越来越长。前几笔交易大约需要 5 秒钟,然后它就从那里开始。在大约 100 笔交易之后,每笔交易都需要一分钟以上,这再次令人无法接受。更糟糕的是,最终 Grails 最终会耗尽 Java 堆内存。我可以增加 JVM 堆大小,但这只会延迟OutOfMemoryError异常。

任何想法为什么会这样?这就像有一些内部资源没有被释放。性能变得更糟,内存被占用,最终系统内存不足。

根据Grails 文档withTransaction将闭包传递给 Spring 的TransactionStatus对象。我找不到任何东西TransactionStatus来关闭/结束交易。

编辑:我从 Grails 的控制台(grails console)运行它

编辑:这是内存不足异常: