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

时间:2013-01-10 13:29:02

标签: grails groovy gsp

围绕springsource-security-core插件实现用户控制器。

当我在控制器中“显示”用户实例(“用户”)时,我想确保密码参数为空并显示为空白编辑控件。

这是“show”方法的代码:

@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]
}

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

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

我也希望实现“密码确认”字段。我对groovy / grail有点新意,所以我一步一步地感觉到这一点。看来通过传入“userInstance”我传递了“User”域类的实例。

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

1 个答案:

答案 0 :(得分:0)

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