问题标签 [grails-validation]

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 投票
2 回答
160 浏览

grails - 中断 grails 动态方法

我有一个 grails 应用程序。其中我有一个名为 Book 的模型类。如果我要从任何控制器调用 Book.list()、Book.get(id) 和其他一些休眠调用,如 save(),我想使用当前登录用户角色进行授权。如果授权失败,我必须抛出一些错误。有没有可用的插件。请给我一些想法或建议。

0 投票
1 回答
2354 浏览

ajax - Grails 和 AJAX:使用 ModalBox 或 YUI2 Dialog 进行 Grails 表单验证?

几个 Grails 应用程序,比如我正在写的那个,需要一个 /user 视图和 /admin 视图,它们是“仪表板”,基本上用户或管理员登陆该页面,可能在成功登录并且所有数据表和选项卡都在那里之后,因此他们几乎不需要离开该页面,从而提供更令人满意的用户体验,就像 Gmail 或 Mint 的用户已经习惯了一样。

为了允许从主 /user 仪表板进行搜索和表单发布,我一直在使用 modalbox 插件 v0.4 grails install modalbox。Modalbox 显然正在管理 GET/POST 本身,不幸的是,它丢失了典型约束块为您提供的 99% 的验证。

现在通过替换 g:submitButton 来解决这个问题,在提交中放置一些基本的 JavaScript,如图所示。(当然,这是一个糟糕的解决方法。)

但一定有更好的办法! 我被告知要使用 g:remoteForm,但还没有看到一个足够完整的示例来使用 Modalbox。也许人们正在使用一个新窗口,它会像 Gmail 的撰写窗口一样自动关闭几秒钟?

对于 SiteMesh 模板,或者至少是“渲染模板:”,甚至是像 modalBox:createLink 这样的 GSP 标签,这可能是一个非常普遍的场景。

源代码可Gtown 项目空间中找到。

0 投票
5 回答
15392 浏览

grails - 自定义错误消息的 Grails 问题

我目前正在尝试在 grails 中为默认约束指定自定义错误消息,但到目前为止,我得到的只是默认错误消息。

我知道我必须编辑 grails-app/i18n/messages.properties 文件

如果我更改以下默认错误代码消息,它将正确显示新的错误消息

但是,这不是我想要做的。我需要更精细的错误报告,并且有多个可以为空白的字段等。我想做的是,为类中的每个字段显示自定义消息

(以下代码附加到 messages.properties 的末尾)

根据 grails 文档,这应该可以正常工作,无论有没有包名 - className.propertyName.blank

grails.org/doc/latest/(约束部分)和(第 7.4 节 - 验证和国际化)

我已经尝试了所有我能想到的组合,但它总是显示自定义消息

我也试过安装 grails i18n 模板插件

http://www.grails.org/I18n+Templates+Plugin

它会自动为我生成错误代码。我将新的错误代码附加到现有 messages.properties 文件的末尾,但我仍然收到默认错误消息。

但是,插件生成的错误代码有所不同。

而不是 grails 文档中指定的格式 - test.name.null=......,它会自动生成 test.name.null.error=Custom Message

我也尝试过完全删除默认错误消息,但它们仍然显示

如果有人以前遇到过这个问题,我将不胜感激任何人都可以给我的帮助

提前致谢

0 投票
2 回答
7891 浏览

grails - 显示 Grails 字段错误

有谁知道我如何fieldError在下面的示例中打印出来。

对于每个有错误的项目,我想打印我在 messages.properties 文件中定义的自定义错误消息

目前所做的只是打印默认错误代码

我看过其他示例,您可以在其中查找字段的错误代码,例如

但我想将默认消息转换为我的新错误消息并打印出来。

0 投票
2 回答
1712 浏览

grails - Grails - 在域类问题上测试自定义验证器

我正在从 Grails 学习 grails - Jason Rudolph 的入门书。我的域类看起来像这样:

我想测试 startDateTime 字段的自定义验证。测试看起来像这样:

测试看起来类似于我之前提到的书中的测试。但我越来越

我被卡住了,没有找到任何解决方案:/任何帮助将不胜感激。

0 投票
1 回答
606 浏览

java - 关于多域关联的 Grails 验证问题?

我需要验证 3 个域之间的保存操作,这是关系:

用户 - JobProcess:一对多,JobProcess - Heatmap:一对多。

我正在使用异常来控制验证流程,这是我的验证类:

我还构建了一个服务类来抽象热图操作(并将参数数据绑定到对象):

我的控制器:

我的第一个问题:我没有使用错误验证:user.save() - 为什么不执行验证?
我可以通过以下方式解决此问题购买更新 if (user.save()):if (heatmap.validate() && user.save())。
有更好的方法吗?

我的第二个问题:我的重定向没有触发无效发布异常。
我被重定向到我的创建视图,但我的所有字段都是空白的(我丢失了所有字段信息)并且没有验证错误。
不过,我使用的是模型:[heatmap:che.invalidObject]。
除了例外,我传回了无效对象,所以我的创建视图应该显示确切的验证错误?怎么了 ?

谢谢

0 投票
1 回答
5986 浏览

grails - 日期验证的 Grails 最小约束

我是 grails 和 groovy 的新手。我有一个带有开始和结束日期的项目域类。我想设置一个约束,指定结束日期需要大于开始日期(然后项目的另一个子对象需要使用父项目的日期验证其开始日期和结束日期)。这是否可能与最小约束或我必须把它放在别处?唯一约束确实允许以这种方式链接两个属性,希望最小/最大约束允许这样做。我试过了

它抛出一个错误,说属性 startDate 在 Project 上不可用

0 投票
1 回答
1046 浏览

validation - 自定义 Grails 验证

我想检查以确保两个字段不相等并且一个大于另一个。说yearBornyearMarried。它们不能相等,yearMarried必须大于 then yearBorn

0 投票
2 回答
3350 浏览

grails - 可验证的 Grails 不适用于非持久域类

我按照这里的说明操作:http: //www.grails.org/doc/latest/guide/7.%20Validation.html

并添加到config.groovy 中

然后在src/groovy/Warm.groovy中添加(它是一个非持久域类):

但它对于“hasErrors”函数不起作用(“空白错误”和“大小:0..25”)。它总是返回 false,即使名称大于 25。

这是一个 Grails 错误,如果是,是否有任何解决方法?

我正在使用 Grails 1.3.3

更新:我已经更新了简化代码。现在我知道约束“大小”不能与“空白”一起使用,但仍然不起作用。

我在test/unit/liningtest/WarmTests.groovy中的测试类

我得到的错误是:

更新 2:当我不使用单元测试,但尝试在控制器中调用hasErrors时,它会运行但返回 false 值。(hasErrors 使用 Warm('Hihi', 3) 返回 false)。有人有线索吗?

更新 3:我遵循 Victor 的方式,现在如果我在 hasErrors() 之前调用 validate(),问题就解决了。但是我还是不明白,为什么“grails generate-all”控制器在使用hasErrors()之前不必调用validate()?

0 投票
1 回答
6164 浏览

grails - validate() 和 hasErrors() 之间有什么联系

这个问题来自我的另一个问题的问题。在那个问题中,我遇到了一种情况,即hasErrors()function 不适用于non-persistent domain class,即使我按照第7.5 部分的说明做了所有事情。

按照 Victor 的方式,我通过调用 validate() 解决了这个问题,但我不明白它为什么会起作用。Grails 文档似乎没有说明您应该在 hasErrors() 函数之前调用 validate() 。这怎么可能发生?