问题标签 [grails-2.4]

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 投票
4 回答
4850 浏览

grails - 从 Grails 中的 message.properties 中获取一些值

message.properties在工作中从 grails 中的文件中获取值,我该怎么做?

我的工作:

0 投票
1 回答
507 浏览

grails - 将文本框的值作为表单 ID 传递

尝试将用户在文本框中输入的值作为表单的 ID 传递。下面的代码片段。这总是在我的控制器中传递 params.id = "index" 。如果我对表单 id="someText" 进行硬编码,它会将 params.id = "someText" 传递给控制器​​。由于某些限制,我必须使用按钮元素而不是 g:actionsubmit。

有什么解决办法吗?

0 投票
1 回答
261 浏览

grails - Grails 2.4 命令对象可为空的约束和依赖注入

我们正在为 Grails 2.4 升级做准备。我们面临的问题之一是大多数命令对象单元测试都失败了,因为注入的属性(如服务)在验证期间必须不为空。

有什么建议的方法来测试这个吗?我们是否应该模拟所有属性,尽管测试不需要一些属性?或者有没有办法以不同的方式做到这一点?

在 Jeff 回答了我的问题后,我分享了有关新功能的更多信息的链接:doWithSpring 和 doWithConfig 在 2.4 中的新增功能中进行了简要描述:http ://grails.org/doc/latest/guide/introduction.html#whatsNew24 in单元测试改进部分还有一个 JIRA 问题示例:https ://jira.grails.org/browse/GRAILS-11003

0 投票
1 回答
2224 浏览

grails - Grails IntegrationSpec IllegalStateException

从 2.4.0 升级到 2.4.2 后,我在运行集成测试时遇到错误。它表明测试通过了,但是我收到了 IllegalStateException。

我试图分析测试,但没有发现任何异常。这是完整的测试。我正在测试从 LDAP 数据源获取信息

提前致谢!

编辑:当我自己运行它时,测试不会失败,只有当我运行我所有的集成测试时。

0 投票
0 回答
467 浏览

json - Grails 2.4 - 将 json 对象中包含的 json 数组解析为 groovy 类

我是 grails 的新手,我要解决的问题非常简单:我的服务器应该在请求中接收一些 json 数据,验证数据并将其保存到数据库中。据我所知,我使用命令对象来验证数据。问题是,如果我的 Command 对象包含另一个类的列表(辅助命令对象),解析器将在该字段中放入一个 jsonArray ,这将忽略我的辅助验证。

解析 json ->

主命令对象 ->

现在为了绕过这个问题,我添加了一个 setter

二传手->

这对我来说感觉不合适,除了更简单的方法来完成它之外,我会。有人可以帮忙吗?谢谢

0 投票
1 回答
605 浏览

grails - 当第一个字段可以为空时,列表脚手架视图中没有编辑链接

假设我有一个具有各种字符串属性的域类(我们称之为人),如下所示:

我现在仅尝试使用动态脚手架,以了解我听说过很多关于这种强大的快速应用程序开发能力将带我走多远……但是这门课就到此为止了。

问题

不可编辑项目的屏幕截图

问题是 Grails 动态脚手架中的默认行为是索引页面将显示前 X 个条目,每个条目的第一个字段变成一个超链接,允许您查看/编辑该特定项目。

这真的很棒,但遗憾的是,当第一个字段可以为空时,索引页面会列出该条目 - 但是没有链接可以单击以详细查看/编辑该项目。

当然,简单的解决方案是将不可为空的字段作为第一项......但现在我有一个类,它具有所有单个字段都可以为空的属性,并通过自定义验证确保至少一个字段包含某些内容。所以这在这个烦人的边缘情况下不起作用(但这是一个业务需求,没有一个字段我可以保证在这里永远不会为空)。

解决这个问题的 Grails 方法是什么,而不是完全抛弃脚手架?

如果我只需要改变这个控制器的索引功能来解决问题,我想用最少的代码来做这件事,而不必为控制器的其余部分放弃动态脚手架。我真的很喜欢脚手架(和 Grails)的快速原型能力,并且想充分利用这个功能集。

解决方案

使用Dónal 建议 install-templates 的答案,我只需运行grails install-templates命令,然后转到我的项目 src->templates->scaffolding->index.gsp 文件。虽然它充满了 scriptlet 等,使其有点难以理解,但事实证明该解决方案非常简单。

在表格部分的 html 中,有一些类似于此的代码:

通过简单地将其更改为以下内容,您可以获得编辑功能的额外标题行:

然后降低您的代码,例如:

通过一个简单的更改来摆脱第一个属性名称列上的链接,而是将您自己的编辑链接添加到第一列,问题得到解决:

因此,通过更改一行并将两行添加到单个文件(在 Grails 命令之后),您已经更改了默认脚手架行为以适应您的喜好并支持可为空的字段。问题解决了!

0 投票
0 回答
169 浏览

grails - 从 grails 插件提供静态文件

我写了一个被其他应用程序使用的私有插件(MyPlugin )。它有一个名为MyPluginController的控制器和一堆 REST 操作。通过 mainapp 访问时,它们都可以正常工作。该插件还附带一个包含在static.html中的单页应用程序。我无法弄清楚如何为 static.html 进行UrlMapping以便可以访问,例如: http ://example.com/mainapp/MyPluginController/static.html

html 位于 myplugin 的 web-app 文件夹中。将其重命名为 .gsp 并使其正常工作很容易,但这是 grails,我相信必须有更清洁的方法。

0 投票
1 回答
568 浏览

hibernate - Grails 域类事务

出于许多不同的原因,显然最好将事务代码放在 Grails 服务中。但是,域类是否像服务一样具有事务性?

将我的域特定字段的数据绑定放在域类中,甚至使用一些 Groovy 约定来使 Grails 绑定更无缝地工作(例如替换 setSomeField(type A) setSomeField(type B) .. . ). 我也一直在尝试按照 Burt Beckwith 的建议手动处理域模型关系,以提高性能并使代码更加灵活。这需要在 setSomeField(...) 调用上更新和保存其他域类实例。

这就是我正在做的事情的背景,但最初的问题是:Domain classes 是否具有与 Grails 服务相同的事务行为?如果没有,我应该将交易包装在 withTransaction{} 中还是使用 @Transactional 还是仅使用 service ?

0 投票
0 回答
158 浏览

java-8 - 使用大量内存的 Grails 数据库迁移插件

我在 Grails 2.4.3(更新:已升级到 Grails 2.5.0 并面临相同的内存问题)应用程序中使用 Grails 数据库迁移插件 (1.4.0),并在 Windows 7 64 位上使用 Java JDK 8 Update 45。当我更改为 Java 8 时,我知道 PermGen 已被删除并替换为 MetaSpace 和常规堆。运行我的迁移(dbm-update)时,我得到一个

为什么数据库迁移插件使用那么多堆空间?如果我降级到 Grails 2.3.x,迁移插件将以更少的内存运行迁移。

--UPDATE-- 至少通过设置“GRAILS_OPTS”环境变量解决了更新数据库的问题:

0 投票
1 回答
692 浏览

grails - Tomcat 上的 Grails 2.4.3 应用程序部署错误

尝试将 Grails 2.4.3 应用程序部署到 Tomcat 7.55

不断收到此错误:

这是构建配置:

我在本地机器上运行它没有问题。即使是“grails prod run-war”。我将尝试删除依赖项,看看是否有问题。不知道 jLine 来自哪里。通过四处搜索,我发现 Jasper Reports 使用 jLine(我曾经安装过,但现在不再安装了)。我还没有找到任何其他使用它的库。Tomcat中有什么可以使用它的吗?