gpt4 book ai didi

mysql - 为什么 Grails 会忽略这个特定的字符串参数,除非我明确地绑定(bind)它?

转载 作者:可可西里 更新时间:2023-11-01 07:37:31 25 4
gpt4 key购买 nike

我有一个类Item :

class Item {
String title
String description
String linkText
String linkUrl

static constraints = {
title blank: false
description blank: false
linkText blank: false
linkUrl blank: false, url: true
}

当我尝试保存 Item 的新实例时使用

def itemInstance = new Item(params)
itemInstance.save()

我收到验证错误:

Property [linkText] of class [class Item] cannot be null

我有两个问题:

  1. linkText就在表格中,在 <g:textField> 中与 name="linkText" .为什么它没有被绑定(bind)到 itemInstance ?如果我在 save() 之前打印出参数,我得到了所有的,包括linkText , 但是如果我然后打印出预保存的属性 itemInstance当我从这些参数构建它时,linkText在实例上是 null .我可以将我的保存代码更改为

    def itemInstance = new Item(params)
    itemInstance.linkText = params.linkText

    它将被毫无问题地保存并使用 params.linkText .但是我为什么要那样做呢?是linkText现在是保留关键字还是什么? (我只知道 it wasn’t in 2008 。)

  2. 为什么我收到“可空”错误而不是“空白”错误?它们是不同的错误。我在 messages.properties 中有一条自定义消息为此,即使考虑到 Grails 现在不想使用它,我也希望它能给我它的 default.blank.message (“Property [{0}] of class [{1}] cannot be blank”)。

没有。该列表中的 1 是我最关心的,但我真的不明白为什么 Grails 对待这个领域与其他三个领域有任何不同 Strings在类里面排名第一。

最佳答案

如评论中所述,我在一个新项目中尝试过此操作,但无法重现该问题。

对于 #1:我会尝试一些不同的事情:

  1. 一个包含所有键/值对的新映射(不是参数的克隆)并尝试使用此自定义映射实例化我的项目。只是为了确认是域/约束还是参数映射导致了意外行为。
  2. 参数的克隆,然后将其用于实例化。

如果它在这两种情况下都工作正常,那么我会仔细查看我的实际参数映射并将其与工作克隆进行比较。

关于mysql - 为什么 Grails 会忽略这个特定的字符串参数,除非我明确地绑定(bind)它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15169460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com