gpt4 book ai didi

forms - 如何在 grails 应用程序中进行正确的验证和重定向

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

我有一个创建和保存方法如下:

def create () {
def myColorInstance = new Color()
return (colorInstance: myColorInstance]
}

def save () {
Date someDate = params.date("somedate", "MM/dd/yyyy")
int someInt = params.int("someInt")
color = colorService.add(params.colorname, someDate, someInt)
if (color.hasErrors())
render (view: "create", model: [colorInstance: color])
else
redirect (action: "list")
}

在我的布局页面上,我有以下内容:
 <g:hasErrors>
<div class="alert alert-error">Please try submitting again</div>
</g:hasErrors>

我得到的行为是,当用户输入某些内容并且验证失败时。他们看到消息 Please try submitting again并且网址更改为 http://localhost:8080/myapp/color/save所以现在当他们第二次提交(再次没有输入任何内容)时,我的应用程序失败并显示消息:“无法将类'null'的对象'null'转换为'int'类。尝试'java.lang.Integer'”

处理这种情况的最佳方法是什么?我希望用户在顶部看到错误消息,他们应该能够再次更正错误并尝试再次提交,它应该可以工作..

最佳答案

您不能设置 int为 null,即 params.int("")可能会回来。 Integer但是,可以为空。

Integer someInt = params.int("someInt")

这将解决您的异常,但它返回 null 的原因与您的 View 没有首先传递数据有关。

仅供引用,这是不正确的语法:
def create () {
def myColorInstance = new Color()
return (colorInstance: myColorInstance]
}

应该:
def create () {  
[colorInstance: new Color()]
}

关于forms - 如何在 grails 应用程序中进行正确的验证和重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15168536/

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