嗨,我是Grails新手& Groovy。如何在请求为“GET”时通过Grails命令对象验证?
目前,我的主页上有一个“注册”按钮,当它连接到一个控制“用户”和动作“注册”时。
我有用户/注册的gsp视图。
在我的注册行动中,我使用命令对象来做一些验证。 (如密码和确认密码检查)。
这里的问题是:
当我点击从我主页上的注册按钮,我想它,然后发送“GET”请求“用户/注册”。
<g:link controller="user" action="register">
<input type="button" class="btn btn-default btn-sm" value="Join Free"/>
</g:link>
在我的用户控制器我有这样的:
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 ]
}
}
}
那么这将触发逻辑在我的寄存器控制器,这是命令对象的验证。然而,当我点击主页上的按钮后,它正在抱怨一些像passowrd等字段。但我认为它应该首先到/user/register.gsp?那我可以输入注册信息了吗?
只是想知道为什么你使用“GET”而不是“POST”? – emilan
@emilan感谢您的回复,我只是重新编辑这个问题,希望对您有帮助吗? – SF461
而不是''使用''或者只是一个'button'来提交表单。我不认为在URL中发送密码是一个好主意(GET)。 –
emilan