问题标签 [grails-2.3]

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 投票
3 回答
1342 浏览

grails - Gsp页面在用字符串替换时保留html标签

我正在使用 grails 2.3

在 gsp 页面的上述语句中,如果 params.query 值可用,我想突出显示 name 属性。但生成的代码包含 html 等效字符。

如何在 gsp 页面中显示如下。在 1.3 版本中它工作。但在 2.3 版本中,相同的代码看起来像上面一样。我想将其显示为,

0 投票
2 回答
1883 浏览

grails - 如何终止以“run-app”开头的 Grails 2.3 应用程序?

在 2.3 版之前,在控制台窗口中使用“ run-app ”(开发模式)启动的 Grails 应用程序可以使用Ctrl-C终止。它不再适用于 Grails 2.3,只是忽略了击键。有“ stop-app ”命令,但它也不会终止正在运行的应用程序。

我可以通过终止控制台窗口来终止应用程序,但我不想这样做,因为在这种情况下,我会丢失打印到该控制台的所有调试输出。

0 投票
0 回答
436 浏览

maven - Grails - 使用 maven 构建模块化项目

我正在开发 grails 2.3.4 应用程序,并且正在尝试添加 maven (3.1.1) 以用于构建目的。我这样做是因为我的项目是模块化的(2 个插件,1 个应用程序 - 现在,以后会有更多插件)并且我想要支持它的工具(我没有使用 Gradle,但这完全是另一个话题)。最近发现了一些我不明白的问题,让我很伤脑筋。对于他们的任何帮助,我将不胜感激。

我的项目结构如下所示:

我的父母 pom.xml:

示例子 pom.xml:

我可以通过以下方式执行集成测试:

  • mvn test -(来自父目录或子目录)-仅执行单元测试
  • grails:test-app - (from child dir) - 执行单元和集成测试
  • mvn grails:test-app - (仅来自子目录)执行单元和集成测试 - 但它执行两次而不是一次(u,i,然后再执行一次 u,i)
  • mvn grails:execute -Dcommand=test-app - (仅从子目录) - 执行适量的单元和集成测试(u,i)但在集成测试期间,其中一些突然启动失败(!!!!)它只是让我大吃一惊为什么..

所以,如果有人试图混合 grails 2.3,也许你有一些关于:

  1. 如何配置 maven 以便能够从父 pom 运行 mvn grails:test-app,而不是这样的结果:

    /li>
  2. 为什么通过mvn grails:test-app通过和mvn grails:exec -Dcommand=tests-app失败执行的集成测试以及如何修复它?我需要 exec 命令用于某些特定目的,并且我希望能够依赖它。这是我最大的问题,我完全不明白可能是什么原因

  3. 为什么mvn grails:tests-app会导致双重测试执行?
  4. 为什么我需要为 tomcat 添加 h2 依赖项?在我的数据源中,我只有 mongodb 配置,我只想坚持使用它,并且每次执行集成测试时都不会看到以下错误:

    /li>

感谢所有到目前为止并且仍在阅读的人 - 无论您是否可以提供帮助:)

汤姆

0 投票
1 回答
436 浏览

grails - Grails 2.3.4 生成的脚手架验证

我试图了解 Grails 2.3.4 生成的脚手架方法如何执行验证。例如,这是为我的 Club 域保存方法生成的:

据我了解,验证的第一阶段发生在数据绑定到保存操作的 Club clubinstance 参数上。所以任何数据绑定错误都会在 if (clubInstance.hasErrors()) 上被捕获。

如文档所示,我没有看到对 clubInstance.validate() 的显式调用或对 clubInstance.save 的任何错误检查。然而,它似乎确实有效。那么如果存在约束冲突,该方法如何验证并返回视图呢?

更重要的是,我们不应该使用生成的脚手架控制器作为在 Grails 中执行基本 CRUD 的最佳实践方式吗?

0 投票
2 回答
241 浏览

grails - 如何浏览 Grails 核心源代码以更好地理解框架?

通常在 Spring Source Tool Suite IDE 或 Eclipse Maven 项目中,如果我想查看框架/库方法在幕后做什么,我可以 ctrl + 单击方法名称,它会将我带到源代码。我知道很多 Grails 方法是在运行时动态添加的,因此 IDE 并不总是可能知道如何获取它们。否则,我可以在 Google、Github 或 API 文档上按包搜索类。使用 Grails 核心源代码更好地理解框架的最佳方法是什么?

例如,我想查看控制器中的响应方法是什么样的,以及当 index 方法看起来像这样时,它如何将名为“clubInstanceList”的参数返回给我的俱乐部/索引 gsp:

ctrl + click 在 IDE 中不起作用,因为此方法是在运行时添加的。我在 github 上搜索了 Grails 核心源,但不知道控制器上此响应方法的包结构。

0 投票
1 回答
868 浏览

eclipse - GGTS (3.4.0) 不适用于 Mac OS X (10.7.5) 上的 grails 2.3.3

我无法让 GGTS (3.4.0) 与 grails 2.3.3、java 1.7.0_u45 和 groovy 2.1 一起使用。我正在使用 Mac OS X 10.7.5。在终端中一切正常,即我可以创建项目(创建应用程序)、运行它们(运行应用程序)、全部清理等。但这些命令在 IDE 中不起作用。

我已经执行了以下帖子中提到的修复,但只有错误消息发生了变化:

Grails GGTS IDE GrailsProcessDiedException:Grails 进程死亡

grails-2.3.0.M1 无法在 IntelliJ IDEA 130.754 中启动

任何帮助,将不胜感激。

我有 JAVA_HOME 指向正确的 jdk,如下所示:

我有一个 GRAILS_HOME 的条目,就像这样

当我在终端中检查我的 java、groovy 和 grails 版本时,我得到:

我还在 GGTS 设置中添加了 grails 2.3.3,还安装了 Grails 和 Groovy 2.1 插件。

每当尝试在导入的项目上创建新的 grails 项目或刷新依赖项时,我都会收到以下错误:

0 投票
1 回答
176 浏览

grails - Grails 2.3 domain.encodeAsHTML() 从 domain.equals() 抛出空指针异常

我不是 100% 清楚我的问题来自哪里。当我从 grails 2.2.3 升级到 2.3.5 时,问题就开始了。我知道默认情况下(至少,可能有一些配置更改)现在几乎所有内容都默认编码为 HTML,但我也知道双编码已被处理,我认为这与双编码无关。

在我的代码库中,许多变量都是显式编码的AsHTML()。在 grails 升级之后,这是抛出 NullPointerException。

我的跟踪从一个简单的 .gsp 开始,带有域对象的标准显示:

${myDomain.encodeAsHTML()}

如果我删除 encodeAsHTML(),它可以工作(但由于我没有添加 Config 位来编码所有内容,它不会编码)。

堆栈跟踪的下一步指向我

这指向我的 equals() 方法。

我的第一个困惑是“为什么'encodeAsHTML()' 在我的对象上调用equals() 方法并将其与空对象进行比较?”

我的第二个(可能不相关,但值得一提)来自检查 equals() 方法本身的值:

日志输出显示:myPackage.MyDomain Comparing TheValue to null, o is null? 错误的

需要注意的是,当我检查 ${!o} 而不是 ${o == null} 时,它会打印“true”,但我很困惑 (o == null) 是 false,但我在 o.class 上得到了 NPE

可以更新我的所有域类 .equals() 方法来检查 (!o) 并返回 false,但我不认为这是正确的解决方案。

我的许多域对象都用于更改持久性上下文,这首先导致了覆盖 equals() 和 hashCode()。删除这些是不可行的。

0 投票
1 回答
706 浏览

ajax - 用于动态添加多个值的 UI,例如 Grails 中的 LinkedIn 技能部分

我最近开始使用 Grails 开发 Web 应用程序。我只是想知道如何将 Grails 脚手架为多对多关系(您可以在其中Ctrl添加多个值)提供的多选列表转换为我一次添加一个值并且它具有Xto删除附加值并+添加更多。类似于 LinkedIn 的技能部分或我们在提问时在 StackOverflow 中添加标签的方式。

LinkedIn 技能部分

0 投票
1 回答
616 浏览

grails - 为什么在开发我的 grails 插件时集成测试中的依赖注入失败

使用生成的集成测试(grails create-integration-test package.ServiceName)时,我无法在测试中使用注入的服务 - 在 grails 插件中。

它抛出了一个非常无用的 NullPointerException

然而,同样的过程——但在 grails 应用程序中使用(grails create-app)完全没有问题。

您可以通过以下方式复制它:

> grails create-plugin myServicePlugin

>grails test-app//按预期通过

>grails create-service testing.DummyService

更改\myServicePlugin\test\unit\testing\DummyServiceSpec.groovy 更改

>grails test-app//通过

>grails create-integration-test testing.DummyService

更改\myServicePlugin\test\integration\testing\DummyServiceSpec.groovy 更改

>grails test-app integration://按预期通过

到目前为止一切都很好。现在编辑DummyService做一些事情errmm .. Dummy-ish

改变\myServicePlugin\grails-app\services\testing\DummyService.groovy

添加

def serviceMethod(){}

现在将服务注入测试规范

改变\myServicePlugin\test\integration\testing\DummyServiceSpec.groovy

添加def dummyService

以下

并将"test something"方法体更改为:

这就是世界倒塌的地方。

>grails test-app integration:

0 投票
1 回答
444 浏览

grails - Grails 2.3.5 在每次代码更改后都需要“grails clean”

每次我修改我的代码时,我都必须在运行grails clean之前运行grails run-app。如果我不这样做,我会收到这样的消息:

这真的很奇怪,因为 Grails 似乎无法加载 Oracle 数据库驱动程序......但如果我运行它加载正常

我正在开发的这个应用程序今天从 Grails 2.2.4 升级。升级是无缝的(直到这个)。我所要做的就是改变hibernate和tomcat版本然后运行grails upgrade; grails clean

任何想法如何获得它,以便我可以修改代码并重新启动使用grails run-app或更好...让重新加载功能工作,所以当我进行代码修改时,它会自动编译我刚刚保存的文件(这在 Grails 2.2 中效果很好.4)。