Grails 空对象参数值重新出现在GSP中

Grails 空对象参数值重新出现在GSP中,grails,groovy,gsp,Grails,Groovy,Gsp,我正在围绕springsource安全核心插件实现用户控制器 当我在我的控制器(“用户”)中“显示”一个用户实例时,我希望确保password参数为null,并显示为空白编辑控件 这是“显示”方法的代码: 在“userInstance”上设置“watch”表示userInstance.setPassword(null)具有所需的效果,并将“password”参数设置为“null” 但是,当使用相同的参数集渲染视图时,将填充密码 我还希望实现一个“密码确认”字段。我对groovy/grail有点陌

我正在围绕springsource安全核心插件实现用户控制器

当我在我的控制器(“用户”)中“显示”一个用户实例时,我希望确保password参数为null,并显示为空白编辑控件

这是“显示”方法的代码:

在“userInstance”上设置“watch”表示userInstance.setPassword(null)具有所需的效果,并将“password”参数设置为“null”

但是,当使用相同的参数集渲染视图时,将填充密码

我还希望实现一个“密码确认”字段。我对groovy/grail有点陌生,所以我正在一步一步地摸索。通过传入“userInstance”,我似乎传递了“User”域类的一个实例


我是否需要在域类中使用两个编码字段,或者我是否可以动态地向GSP添加一个字段,然后在控制器中验证,然后再使用编码密码保存域类?

最好的方法是使用命令对象,请参阅:

使用命令对象确定。然而,野外行为仍然是个谜,不过现在还没有定论。
@Secured(['ROLE_SUPERUSER','ROLE_USER'])
def show(Long id) {

/**
 * If we're not the Superuser, then we only want to see the instance of the logged in user.
 */
def userInstance

if (SpringSecurityUtils.ifNotGranted('ROLE_SUPERUSER')) {
    userInstance=springSecurityService.currentUser
} else {
    userInstance = User.get(id)
}

    if (!userInstance) {
        flash.message = message(code: 'default.not.found.message', args: [message(code: 'user.label', default: 'User'), id])
        redirect(action: "list")
        return
    }

    userInstance.setPassword(null)

    [userInstance: userInstance]
}