2014-10-08 38 views
1

我怎样才能从格姆视图中隐藏password柱: enter image description hereGrails的脚手架隐藏表列

我的域类:

class SecUser { 
    static scaffold = true 

    transient springSecurityService 

    String username 
    String password 


    boolean enabled = true 
    boolean accountExpired 
    boolean accountLocked 
    boolean passwordExpired 



    static transients = ['springSecurityService'] 

    static constraints = { 

     username blank: false, unique: true 
     password (display:false, blank: false) 



    } 

    static mapping = { 
     password column: '`password`' 
    } 

    Set<SecRole> getAuthorities() { 
     SecUserSecRole.findAllBySecUser(this).collect { it.secRole } as Set 
    } 

    def beforeInsert() { 
     encodePassword() 
    } 

    def beforeUpdate() { 
    if (isDirty('password')) { 
      encodePassword() 
     } 
} 

    protected void encodePassword() { 
     password = springSecurityService.encodePassword(password) 
     // password = password 
    } 
} 
+0

为什么你在域类中有'static scaffold = true'? – 2014-10-08 15:33:29

+0

这是一个例子。如果我删除它,它不能解决我的问题 – lsv 2014-10-08 15:45:47

+0

我不希望删除它会解决问题。通常情况下,除非您的应用程序(或您的应用程序使用的插件)中具有该属性的代码,否则该属性在域类中将毫无意义。我认为默认脚手架插件可以识别控制器中的属性。 – 2014-10-08 15:48:08

回答

2

display: false约束用来隐藏从默认脚手架查看属性。 https://github.com/jeffbrown/scaffolddisplay的项目演示了这一点。你必须在你的应用中有一些阻碍。可能您已经生成了包含该属性的视图。可能你正在使用提供视图的插件。