gpt4 book ai didi

html - 当请求为 "GET"时如何通过 Grails 命令对象验证?

转载 作者:行者123 更新时间:2023-12-02 15:21:43 25 4
gpt4 key购买 nike

嗨,我是 Grails 和 Groovy 的新手。

目前,我的主页上有一个“注册”按钮,它链接到控制“用户”和操作“注册”。

我有用户/注册的 gsp View 。

在我的注册操作中,我使用命令对象进行一些验证。 (如密码和确认密码检查)。

这是问题所在:

当我从主页单击注册按钮时,我认为它会向“用户/注册”发送“GET”请求。

<g:link controller="user" action="register">
<input type="button" class="btn btn-default btn-sm" value="Join Free"/>
</g:link>

在我的用户 Controller 中,我有这个:
 def register(UserRegistrationCommand urc) {
if (urc.hasErrors()) {
render view: "register", model: [ user : urc ]
} else {
def user = new User(urc.properties)
user.profile = new Profile(urc.properties)
if (user.validate() && user.save()) {
flash.message =
"Welcome aboard, ${urc.fullName ?: urc.loginId}"
redirect(uri: '/')
} else {
// maybe not unique loginId?
return [ user : urc ]
}
}
}

那么这将触发我的寄存器 Controller 中的逻辑,即命令对象的验证。但是,当我单击主页上的按钮后,它会提示一些字段,例如 passowrd ...等。但我认为它应该先把我带到/user/register.gsp 吗?然后我可以输入注册信息吗?

最佳答案

首先:使用 POST 请求进行注册。

其次,使用与您的注册数据匹配的 CO。意味着在注册时不要使用您不需要的额外属性。或者修改你的约束。

如果您调用 validate 方法或在保存期间进行验证。您可以通过调用 save(validation: false) 绕过验证但你不应该那样做。

关于html - 当请求为 "GET"时如何通过 Grails 命令对象验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34413427/

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