问题标签 [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 投票
3 回答
7417 浏览

grails - 域类的 Grails 自定义验证器

我有一个限制,所以只能 ConfigurationHolder.config.support.reminder.web.person.max存储对象。我没有找到如何添加与特定属性无关的验证器。所以现在我以这种方式实现了它。你们有什么想法可以让它变得更好吗?

0 投票
2 回答
7929 浏览

grails - 如何覆盖 Grails 中的默认错误消息?

我有一个带有姓氏字段的 Person 对象。姓氏字段不能为空。当用户在 lastName 字段中提交表单空白值时,用户看到的错误消息是:

此错误消息很蹩脚。我想将其自定义为更用户友好的内容,例如“姓氏字段不能为空”

我怎么做?

0 投票
2 回答
1636 浏览

grails - Grails:属性空错误

我有一个名为 Modulo 的域,它有一些属性,还有一个 Controller,它有一个从模型创建对象并保存它的方法,当执行保存 shell 时显示此错误:

  • La propiedad [{0}] de la case [{1}] no puede ser nulo

但是,如果我将可空约束设置为 true,则会再次显示错误。我认为我不应该设置这个约束。

该模型链接到具有除 id 之外的所有属性的 mysql 表允许为空。

我想我在这里没有做错什么。有什么建议吗??

域:模

控制器:示例

谢谢。何塞

0 投票
1 回答
78 浏览

ruby-on-rails - 为什么我的验证没有通过

我正在开发 Rails 3 应用程序。

我想验证“ Cake ”模型的“ size ”属性输入字段只允许用户输入+1,-1,+10,-10+25,-25,仅此而已。

我使用以下验证来验证“大小”:

(我的数据库“cakes”表中的“size”属性是“ double ”类型。)

在 UI 中,即使我输入 1 或 10 或 25 或 +1 或其他任何值,我总是会收到验证失败消息。为什么我的验证没有通过,即使值是正确的?

0 投票
1 回答
1903 浏览

grails - Grails formRemote - 如何避免在多表单上重定向?

我有一个名为 Screening 的主控制器。我为这个控制器构建了视图工作流(例如:创建、编辑、列出、显示)。

在我的编辑视图中,我使用的是 Jquery TABS(每个选项卡都从与域关联的模板中获取内容)。所以总结一下:

因此,在我的筛选编辑视图中,我使用 formRemote 添加模板部分,例如:

我想在筛选视图中保留验证/保存,我该如何处理?
实际上,如果用户尝试保存(或验证失败),他们将被重定向到人口统计控制器/视图;如何避免这种情况?我不希望用户被重定向。
有没有一种在一个控制器/域中处理多种形式(带有模板/域关联)的最佳方法?

0 投票
2 回答
618 浏览

grails - 使用 Java 类作为 Grails 命令

我有一堆 Java 类,我想在我的 Grails 控制器中用作命令类。一个典型的例子是:

我希望能够为此类指定约束,以便我可以调用validate()它,并且任何验证错误都将存储在errors属性中。换句话说,它的行为就像一个普通的 Grails 命令类。

显然我不能直接在 .java 源文件中声明约束闭包,因为 Java 不支持闭包。有什么方法可以修改这些类(在运行时),以添加 Grails 命令行为?

0 投票
2 回答
1501 浏览

grails - 自定义 Grails 验证

通常对于 Grails 域或命令类,您声明您的约束并且框架添加一个validate()方法来检查这些约束中的每一个是否对当前实例有效,例如

就我而言,我想确保preValidate始终在验证类之前执行。我可以通过添加一个方法来实现这一点

但是每个使用这个类的人都需要记住调用customValidate而不是validate. 我也不能这样做

因为validate不是父类的方法(它是通过元编程添加的)。还有其他方法可以实现我的目标吗?

0 投票
3 回答
678 浏览

grails - Grails 表单错误处理:绑定 1:1 对象映射

我有一个注册表单,其中包含与两个域对象相关的字段;用户和个人资料。该关系是 User 域类拥有的 1:1 映射。

用户控制器上的“注册”操作对表单值进行编组,并在没有验证错误的情况下保留用户对象并在提交表单时重定向到应用程序根目录。否则,控制器将重定向回注册表单,显示带有失败值的预填充字段。

但是,在实践中,当验证失败时,失败的值不会显示在视图中。以下是注册操作的代码:

以下是显示用户和配置文件相关字段的视图的示例 html 摘录:

从语法上看,一切看起来都还不错;我正在使用适当的命名约定和 grail 的插值来访问值,所以我不知道为什么它的行为不符合预期。

任何意见或建议将不胜感激。

谢谢,-汤姆

0 投票
2 回答
776 浏览

grails - 依赖于其他属性的 Grails 验证

用 grails 做这样的事情的正确方法是什么:

所以我要么希望有一个指向 otherDomainThing 的链接,要么我想要一个字符串描述。

0 投票
2 回答
533 浏览

grails - ConversionNotSupportedException 具有类似名称的类

更新:对类等做了一些错误的假设。当我有一个“演示”项目时,现在会发生以下情况:

我有两个班级,都名为“公司”。

  • 一个放在 grails-app/domain/my.classes.domain.Company
  • 另一个在 src/groovy/my.clazz.Company

最后一个有@Validateable注解,Config.groovy包含grails.validateable.packages = ['my.clazz']

我还有一个 Account 类,在 grails-app/domain/my.classes.domain.Account 中:

package my.classes.domain

import java.io.Serializable;

class Account implements Serializable { Company company }

然后我使用以下代码(在 bootstrap.groovy 中):

运行此应用程序时,显示以下错误:

这是一个非常奇怪的例外,因为一切似乎都很好。一些测试证明了以下“提示”:当我修改 config.groovy 以显式命名类时不会发生此错误(即使用 grails.validateable.classes = ['my.classes.domain.Company']),此错误当我将帐户的公司属性修改为不同的名称(并相应地修改引导程序)时,不会发生,即:

但是,这些都是解决方法。我真的很感兴趣为什么会这样。有人有线索吗?

为了安全起见,我做了以下操作来产生这个问题:

  1. 创建域类:my.classes.domain.Company
  2. 创建域类:my.classes.domain.Account
  3. 如上修改域类
  4. 创建一个 groovy 类:my.clazz.Company
  5. 给这个 groovy 类 Validatable 注释。
  6. 将 my.clazz 包添加到可验证的包中
  7. 在引导程序中,使用新帐户(公司:公司)创建一个新帐户