gpt4 book ai didi

grails - Grails中的空白约束不起作用

转载 作者:行者123 更新时间:2023-12-02 15:28:23 24 4
gpt4 key购买 nike

我在Grails中研究空白约束。
我有一个addWebsites.gsp,如下所示:

<g:form controller="SiteURL" action="websiteAdded">
<label for="siteURL">ADD URL:</label>
<g:textField name="siteURL" value="${siteURL?.siteURL}"
style="width: 400px;height: 22px;"></g:textField>
<br />
<input type="submit" value="Save">
</g:form>

我想要对 textField siteURL的空白约束。域类是 SiteURL.groovy:
class SiteURL {
String siteURL
static constraints = {
siteURL blank:false
}
}

我的 SiteURLController.groovy类如下:
class SiteURLController {
def addWebsites() { }

def websiteAdded(){

if(request.method == 'POST') {
def u = new SiteURL()
u.properties ['siteURL']
if(u.siteURL =="") {
u.errors.rejectValue("siteURL", "cmsprofiler.siteurl.empty")
return [siteURL:u]
} else if(u.save()) {
session.siteURL= u
redirect(controller: "SiteURL", action: "websiteAdded")
} else {
return [siteURL:u]
}
}
}

def websiteNOTAdded(){ }
}

尽管有限制,但当我将文本字段保留为空白并仍然将我带到websiteAdded View 页时,它不会显示错误。我无法找出问题所在。我希望显示该错误,以防用户尝试按提交而不输入URL。任何帮助,将不胜感激。谢谢

最佳答案

您的代码如下所示:

 def u = new SiteURL()
u.properties ['siteURL']
if(u.siteURL =="") {
u.errors.rejectValue("siteURL", "cmsprofiler.siteurl.empty")
return [siteURL:u]
}

if条件永远不会成立。您正在创建一个新的SiteURL对象,并且永远不会将值分配给siteURL属性,因此它将为null。

您的代码行为完全符合我的预期。

您可能认为 u.properties ['siteURL']在做有意义的事情,但事实并非如此。所有要做的就是检索siteURL属性的值。您永远不会为其分配值。

关于grails - Grails中的空白约束不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24211711/

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