问题标签 [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.
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 开发的框架吗?
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)
css - 样式表上的 Grails NumberFormatException
使用 Grails 1.1 beta2 和一个 JSP 页面。JSP 包括 CSS 参考:
当包含此行时,Grails 会出现以下错误:
如果我删除样式表标签,则页面加载无错误(但没有 CSS)。任何想法为什么?
grails - Dreamweaver + Grails
有人试过用 Adobe Dreamweaver CS4 做 GSP 设计吗?它支持 JSP,但它不识别 gsp 扩展,即使它识别了,我认为关于它无法识别的 gsp 标签也会有问题。我在这里找到了一本小食谱 ( http://www.bitwalker.nl/blog/using-groovyserver-pages-in-dreamweaver ),用于让 GSP 部分使用 Dreamweaver CS3,但它引用的许多文件和目录不再出现存在于 CS4 中。
sql - Grails 中的 SQL/数据库视图
有谁知道通过 Grails 访问 sql 视图的最佳方法是什么(或者这是否可能)?这样做的一个明显方法是对视图使用 executeQuery 从视图中选择一组行,我们不会将其视为域对象列表。然而,即使在这种情况下,对哪个域类运行 executeQuery 也并不明显,因为实际上我们只是使用该域类来针对完全不相关的实体(视图)运行查询。
是否更愿意创建一个表示视图的域类,然后我们可以对那个域类使用 list() ?这似乎会出现问题,因为 Grails 可能希望能够插入、更新、删除和修改任何域类的表模式。
[编辑:
在此跟进问题:Grails Domain Class without ID field or with partial NULL complex field
grails - Groovy Mixin?
我正在尝试在我的 Groovy/Grails 应用程序中混入一个类,并且我正在使用docs 中定义的语法,但我不断收到错误消息。
我有一个看起来像这样的域类:
它编译得很好,但由于某种原因它不起作用。包含 ImagesMixin 的文件位于我的/src/groovy/
目录中。
我已经使用 Groovy 版本 1.5.7 和 1.6-RC1 尝试过,但没有任何运气。有谁知道我做错了什么?
堆栈跟踪:
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 函数的一部分,然后下载一次并由客户端一遍又一遍地使用的想法,这是一个坏主意。但是,“动态”部分只会改变也许每周或每月一次,然后很少。大多数情况下,我们只希望从数据库中生成这个片段,即使只有一次,而不是硬编码。)
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 来直接查询视图而无需关联的域类(实际上我们现在正在这样做),但理想情况下我们希望用域类来表示视图。此外,抛开所有争论不谈,这两个问题可以更通用地应用,而不仅仅是我们的特定问题。
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
)运行它
编辑:这是内存不足异常: